为什么要将一个父类的析构函数写成一个虚函数,和内存泄漏有关,怎么理解?

今天被一个问题困扰了一下,当我们定义了一个类,然后在让一个子类去继承这个类,定义子类和父类都写好构造函数和析构函数,实例化这个子类对象时,会先调用父类的构造函数,在调用子类的构造函数,释放这个对象的时候恰恰相反 ,先调用子类析构函数,在调用父类析构函数,那么,问题就是存在这种继承机制的类是否会额外消耗很多的存储空间呢?比如说一个类,继承多个父类或者说链式继承,即他的父类还继承了别的类,那么示例化一个子类对象难道说要将他的所有父类都实例化?期待高手回答这个问题,相信还有很多人对这个不是很理解,固然大家知道不可能将所有的父类都实例化,但是,子类必然包含有父类的相关信息,是简单的复制,还是压栈式的融合,我对此表示还不清楚,因此不敢妄加评论,希望高手能解答。

 好了,继续我要说的问题,那么,如果以指针形式声明一个基类类型指针,然后调用子类构造函数为其构建对象,当释放对象的时候,是调用父类析构函数还是调用子类析构函数呢?看下面的例子;

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值