有如下程序: #inc1ude<iostrcam> using namespace std; c1ass BASE{ public: ~BASEO {cout<<"BASE";} }; c1ass D

admin2019-06-12  39

问题 有如下程序:
    #inc1ude<iostrcam>
    using namespace std;
    c1ass BASE{
    public:
    ~BASEO {cout<<"BASE";}
    };
    c1ass DERIVED:public BASE{
    public:
    ~DERIVED(){cout<<"DERIVED";}
    };
    int main0 {DERIVED x;return0;}
    执行后的输出结果是(    )。

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

答案D

解析 此题考查的是派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。
转载请注明原文地址:https://kaotiyun.com/show/2X8p777K
0

最新回复(0)