">

">


完成程序题:请按空格顺序填写答案。

使程序的输出结果如下:

Parent::Parent( )called.

Child::Child( )called.

Child::~Child( )called.

Parent::~Parent( )called. 




【正确答案】:

第1空:PARENT
第2空:DELETE A


【题目解析】:

在派生类中继承的基类成员的初始化,需要由派生类的构造函数调用基类的构造函数来完成,这个初始化对象成员有类似之处。故第1空:Parent 

当使用new运算符生成对象指针时,自动调用本类的构造函数。使用delete删除这个对象时,首先为这个动态对象调用本类的析构函数,然后再释放这个动态对象占用的内存。这和使用new建立动态对象的过程正好相反。故第2空:delete a

可简单理解为:在执行一个派生类的构造函数之前,总是先执行基类的构造函数。派生类对象消亡时,析构函数各部分执行次序与构造函数相反,先执行派生类的析构函数,再执行基类的析构函数。


Top