且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-11-09 22:10:30

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

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

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

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