构造函数与析构函数

本文详细介绍了C++中构造函数和析构函数的调用顺序,包括基类、成员对象及派生类的构造与析构顺序。强调了构造函数的调用遵循基类-成员对象-派生类的顺序,析构函数则是相反顺序。同时,文章解释了为何要在多态基类中声明虚析构函数,以确保正确销毁派生类对象,避免资源泄漏问题。
摘要由CSDN通过智能技术生成
构造函数
 
     先看看构造函数的调用顺序规则,只要我们在平时编程的时候遵守这种约定,任何关于构造函数的调用问题都能解决; 构造函数的调用顺序总是如下:
1.基类构造函数。如果有多个基类,则构造函数的调用顺序是某类在类派生表中出现的顺序,而不是它们在成员初始化表中的顺序。
2.成员类对象构造函数。如果有多个成员类对象则构造函数的调用顺序是对象在类中被声明的顺序,而不是它们出现在成员初始化表中的顺序。
3.派生类构造函数。

析构函数
       析构函数的调用顺序与构造函数的调用顺序正好相反,将上面3个点反过来用就可以了,首先调用派生类的析构函数;其次再调用成员类对象的析构函数;最后调用基类的析构函数。
       析构函数在下边3种情况时被调用:
       1.对象生命周期结束,被销毁时(一般类成员的指针变量与引用都i不自动调用析构函数);
       2.delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是虚函数时;
       3.对象i是对象o的成员,o的析构函数被调用时,对象i的析构函数也被调用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值