1.对于继承,基类构造--->派生类构造--->派生类析构--->基类析构;
2.对于成员对象,成员对象构造--->外层对象构造--->外层对象析构--->成员对象析构;
//基本是小---大---大---小
#include <iostream>
using namespace std;
class Base
{
public:
Base()
{
cout << "Base构造函数的调用" << endl;
}
~Base()
{
cout << "Base析构函数的调用" << endl;
}
};
class Son :public Base//继承
{
public:
Son()
{
cout << "Son构造函数的调用" << endl;
}
~Son()
{
cout << "Son析构函数的调用" << endl;
}
};
int main()
{
Son s;
return 0;
}
//运行结果:
//Base构造函数的调用
//Son构造函数的调用
//Son析构函数的调用
//Base析构函数的调用
#include <iostream>
using namespace std;
class Son
{
public:
Son()
{
cout << "Son构造函数的调用" << endl;
}
~Son()
{
cout << "Son析构函数的调用" << endl;
}
};
class Father
{
public:
Son son;
Father()
{
cout << "Father构造函数的调用" << endl;
}
~Father()
{
cout << "Father析构函数的调用" << endl;
}
};
int main()
{
Father father1;
return 0;
}
//运行结果:
//Son构造函数的调用
//Father构造函数的调用
//Father析构函数的调用
//Son析构函数的调用