构造执行顺序。 父类—>子类 父类的构造在子类初始化列表中调用,先执行初始化列表
析构执行顺序。 子类—>父类 先调用析构,在回收对象的空间,包含父类代表父类的生命周期结束,再调用父类的
构造先调用父类,默认的调用的是没有参数,想执行带参数的也需要在初始化列表中指定
#include <iostream>
using namespace std;
// 构造执行顺序。 父类--->子类 父类的构造在子类初始化列表中调用,先执行初始化列表
// 析构执行顺序。 子类--->父类 先调用析构,在回收对象的空间,包含父类代表父类的生命周期结束,再调用父类的
// 构造先调用父类,默认的调用的是没有参数,想执行带参数的也需要在初始化列表中指定
class CPerson // 基类(父类)
{
public:
CPerson(int a)
{
cout << "CPerson::CPerson" << endl;
}
~CPerson()
{
cout << "CPerson::~CPerson" << endl;
}
};
class CSuperMan : public CPerson
{
public:
CSuperMan():CPerson(123)
{
cout << "CSuperMan::CSuperMan" << endl;
}
~CSuperMan()
{
cout << "CSuperMan::~CSuperMan" << endl;
}
};
int main()
{
{
CSuperMan ss;
}
system("pause");
return 0;
}