继承与派生:派生类的析构函数(转)

本文介绍了派生类析构函数的概念和工作原理。派生类的析构函数在对象销毁时负责清理工作,它不能继承基类的析构函数,需要独立定义。在析构过程中,系统自动调用基类和内嵌对象成员的析构函数,顺序与构造函数相反,即先清理派生类新增成员,再按相反顺序清理内嵌对象和基类成员。通过一个示例程序,展示了析构函数的执行顺序,验证了这一过程。
摘要由CSDN通过智能技术生成

原文地址:http://www.jizhuomi.com/software/102.html

      鸡啄米在C++编程入门系列之三十九中讲了派生类的构造函数,提到构造函数就不能不说析构函数,这一节主要讲讲派生类析构函数的相关内容。

      派生类的析构函数也是在派生类对象释放的时候进行清理工作的。前面说过,派生类无法继承基类的析构函数,所以如果需要的话就要自己定义析构函数。派生类析构函数的定义方式与一般类的析构函数是一样的,也是没有返回类型,没有参数,所以比构造函数需要注意的东西少多了。

      派生类的析构函数一般只需要在其函数体中清理新增成员就可以了,对于继承的基类成员和派生类内嵌对象成员的清理,则一般由系统自动调用基类和对象成员的析 构函数来完成。这个执行过程的顺序正好和派生类构造函数相反:1.执行析构函数语句清理派生类的新增成员;2.调用内嵌对象成员所属类的析构函数清理派生 类内嵌对象成员,各个对象成员的清理顺序与其在构造函数中的构造顺序相反;3.调用基类的析构函数清理继承的基类成员,如果是多继承则各个基类的清理顺序 也与其在构造函数中的构造顺序相反。总起来一句话,析构函数执行时所有成员或对象的清理顺序与构造函数的构造顺序刚好完全相反

      上一讲的例程中所有类都没有定义析构函数,这时系统会为每个类生成默认析构函数,由他们完成清理工作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值