有如下程序: #include<iostream> using namespace std; class TestClass{ public; ~TestClass (){cout<<"BASE:;} }; cla

admin2012-01-20  39

问题 有如下程序:    #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。
转载请注明原文地址:https://jikaoti.com/ti/7GL0FFFM
0

随机试题
最新回复(0)