c++ - 继承析构顺序
PHP中文网
PHP中文网 2017-04-17 12:59:18
0
1
495

以下程序输出什么?

class A
{
public:
    A()  {     }
    ~A() {    cout<<"~A"<<endl;   }
};

class B:public A
{
public:
    B(A &a):_a(a)//初始化列表
    {
        
    }
    ~B()
    {
        cout<<"~B"<<endl;
    }
private:
    A _a;
};
int main()
{
    A a;
    B b(a);
}
PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
迷茫

C++的析构跟构造是相逆的过程。构造过程是这样的:main中的实例aB的基类A部分,B的成员_aB本身。析构就反转过来,首先是B,然后是_a,然后是基类,然后是a,所以输出应该是:

~B
~A
~A
~A
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿