有如下程序: #include<iostream) using namespace std; classBASE{ public: ~BASE(){cout<<“BASE”;} }; class DERIVED:p

admin2010-12-16  26

问题 有如下程序:    #include<iostream)    using namespace std;    classBASE{    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

解析  本题考查派生类的定义和使用。当对象被删除时,派生类的析构函数就被执行。由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。所以当main函数结束时,派生类DERIVED的对象x将被删除,那么派生类DERIVED的析构函数先被调用,输出DERIVED,然后调用基类的析构函数输出BASE。
转载请注明原文地址:https://jikaoti.com/ti/T5L0FFFM
0

最新回复(0)