
二、派生类的析构 (1)注意事项①在创建派生类对象时,应该先创造基类对象,此时派生类构造函数通过成员初始化列表的方式将数据传递给基类的构造函数,以便初始化从基类继承过来的数据成员。
②如果派生类有对象成员,那么再调用对象成员所属类的构造函数来进行初始化;如果派生类有多个对象成员,那么初始化按照它们再类中定义的顺序进行。
③派生类自身的构造函数最后被调用,用于初始化派生类新增的数据成员
三、构造与析构顺序 (1)示例代码当派生类对象被释放时,析构函数的调用顺序如下:
①先调用派生类的析构函数(从下往上进行析构,栈区先进后出)
②如果派生类有对象成员,再调用对象成员所属类的析构函数;如果有多个对象成员,那么析构顺序按照它们再类中的定义顺序的逆序进行
③最后调用基类的析构函数
#include
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;
}
};
void test01()
{
//Base b;
Son s;
}
int main()
{
test01();
system("pause");
return 0;
}
调用父类(基类)的对象:
调用子类(派生类)的对象:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)