#include<bits/stdc++.h>
using namespace std;
class animal{
public:
animal(){
cout<<"调用animal构造"<<endl;
}
~animal(){
cout<<"调用animal析构"<<endl;
}
};
class verhical{
public:
verhical(){
cout<<"调用verhical构造"<<endl;
}
~verhical(){
cout<<"调用verhical析构"<<endl;
}
};
class car:public verhical{
public:
car(){
cout<<"调用car构造"<<endl;
}
~car(){
cout<<"调用car析构"<<endl;
}
};
class person:public animal{
public:
person(){
cout<<"调用person构造"<<endl;
}
~person(){
cout<<"调用person析构"<<endl;
}
car mycar;
};
int main(){
person a;
cout<<"-------------------"<<endl;
}
自己运行一下就好了,先说结论:
构造:基类构造——>子对象构造——>派生类构造
析构:与构造完全相反:派生类析构——>子对象析构——>基类析构
需要注意的是,子对象构造与析构时,也是遵循上面的规律,套娃,你懂吧?