问题 填空题

有如下程序: #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; } 执行上面程序的输出是 【12】

答案

参考答案:PARENTSON

解析: 本题考查了派生类的构造。在构造一个派生类的时候,会先构造其基类。所以主函数一开始在定义SON类的对象son时,会先执行PARENT类的构造函数再执行SON类的构造函数,输出“PARENTSON”。接下来定义了一个PARENT类指针p,此处并未创建任何对象,所以不会调用构造函数。第3条语句让指针p指向son对象,此步只改变了指针p的值,所以也没有输出。故最终输出的结果就是:PARENTSON。

单项选择题
单项选择题 共用题干题