gui*_*eek 0 c++ inheritance destructor
class base{
public:
~base(){
cout<<"base class delete"<<endl;
}
};
class derived:public base{
public:
~derived(){
cout<<"derived class 1 delete"<<endl;
}
};
class derived2:public base,public derived{
public:
~derived2(){
cout<<"derived class 2 delete"<<endl;
}
};
int main(){
derived2 h;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生的输出是:
派生类2删除
派生类1删除
基类删除
基类删除
我知道析构函数是以构造函数的相反顺序调用的,但是我无法理解这个输出.任何人都可以解释这种行为吗?