问题 单项选择题

有如下程序:
#include<iostream>
using namespace std;
class TestClass
public;
~TestClass ()cout<<"BASE:;
;
class TestClass1:public TestClass
public:
~TestClass 1 ()cout<<"DERIVED";
;
int main()TestClass1 x;return 0;
执行后的输出结果是( )。

A.BASE

B.DERIVED

C.BASEDERIVED

D.DERIVEDBASE

答案

参考答案:D

解析: 程序中的TestClassl为TestClass的派生类,从程序中的main函数入手,定义了TestClass1对象x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对予对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出DERIVED,基类析构函数输出BASE。

名词解释
单项选择题