c++派生类析构函数为什么 自动调用基类构造函数

查看:236
本文介绍了c++派生类析构函数为什么 自动调用基类构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题


基类与派生类的析构函数不是继承关系,继承析构里也没声明调用,为什么会自动调用基类析构呢?

解决方案

析构函数的主要作用,就是在该类实例对象不需要的时候,对这个对象进行一些清理作用(主要是内存的释放.)一个基类,它也是一个类,它也可以有对象, 所以基类的析构函数负责基类内部开辟的一些内存的清理工作.

那么, 对于派生类. 可能会产生一些内存的开销, 那么派生类也需要构造函数. 基类只了解基类内部的内存开销, 派生类只了解派生类自己的内存开销. 他们之间互不了解. 继承关系, 多数都是建立在扩充基类的关系上.

派生类丰富了基类, 如果派生类的实例对象在销毁的时候, 不去自动调用基类的析构函数, 那么请问? 基类的清理工作谁去做? 基类的内部, 有一些是派生类不了解的. 为了方便,为了安全,为了管理. 所以派生类的对象销毁的时候, 继承机制会分级调用各级的析构函数.

内存的清理工作必须严格要求. 谁开辟的,谁最后释放. 一人做事儿一人当. 孩子闯了祸, 不应该让老爹去认错. 同时继承关系, 基类有基类的责任, 派生类有派生类的责任. 分工明确了, 不能越俎代庖. 各部门相互协调, 程序才能顺畅运行.

这篇关于c++派生类析构函数为什么 自动调用基类构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆