有如下程序: #include <lostream> using namespace std; class A{ public: A( ){cout<<"A";} ~A( ){cout<<"~A";} };

admin2010-12-16  30

问题 有如下程序:    #include <lostream>    using namespace std;    class A{    public:    A( ){cout<<"A";}    ~A( ){cout<<"~A";}    };    class B:public A{    A*P;    public:    B( ){cout<<"B";P=new A( );}    ~B( ){cout<<"~B";delete P;}    };    int main( ){    B obj;    return 0;    }    程序的输出结果是   

选项 A、BAA~A~B~A
B、ABA~B~A~A
C、 BAA~B~A~A
D、ABA~A~B~A

答案B

解析 基类与派生类的构造函数与析构函数的执行顺序是先执行基类的构造函数,然后执行派生类的构造函数。删除对象时,先执行派生类的析构函数,最后执行基类的析构函数成员。
转载请注明原文地址:https://kaotiyun.com/show/7hVp777K
0

最新回复(0)