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

admin2021-07-02  18

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

选项 A、BASE
B、DERIVED
C、BASEDERIVED
D、DERIVEDBASE

答案D

解析 程序中的TestClass1为TestClass的派生类,从程序中的main函数入手,定义了TestClass1对象x。调用析构函数的顺序,先执行派生类自己的析构函数,对派生类新增加的成员进行清理,然后调用子对象的析构函数,对子对象进行清理,最后调用基类的析构函数,对基类进行清理。这里派生类中析构函数输出DERIVED,基类析构函数输出BASE。
转载请注明原文地址:https://kaotiyun.com/show/mifp777K
0

最新回复(0)