问题
填空题
有如下程序:
#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类的指针,并不调用构造函数。