有以下程序: #include <iostream> using namespace std; class BASE { private: char c; public: BASE(char n

admin2010-06-06  27

问题 有以下程序:    #include  <iostream>    using namespace std;    class BASE    {    private:       char c;    public:       BASE(char n):c(n);{}       virtual~BASE()       {          cout<<c;       }    };    class DERIVED:public BASE    {       char c;    p

选项 A、XY
B、YX
C、X
D、Y

答案1

解析 在C++中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数结束时,派生类DERIVED对象obj将被删除,所以就会调用对象的析构函数。先调用派生类的析构函数,输出X,然后调用基类的析构函数,输出Y。
转载请注明原文地址:https://jikaoti.com/ti/PVW0FFFM
0

最新回复(0)