问题 单项选择题

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

A.BASE

B.DERIVED

C.BASEDERIVED

D.DERIVEDBASE

答案

参考答案:D

解析: 此题考查的是派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。

单项选择题
单项选择题 A3/A4型题