问题 填空题

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

单项选择题
单项选择题