有如下程序: #include<iostream> using namespace std; class PARENT { public: PARENT(){cout<<"PARENT";) }; class SON:public PARENT { public: SON(){cout<<"SON";} }; int main() { SON son; PARENT *p; p=&son; return 0; } 执行上面程序的输出是______。
参考答案:PARENTSON
解析: 此题考查的是派生类和基类的构造函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。SON son;执行时首先调用基类的构造函数,输出“PARENT”,然后调用派生类的构造函数输出“SON”。需要注意的是,语句PARENT *p;只是定义一个PARENT类的指针,并不调用构造函数。