为了账号安全,请及时绑定邮箱和手机立即绑定

delete释放父类指针指向的子类对象的时候会成功吗

上一节课讲得Circle类里面的构造函数没有帮他new一个内存,那么后面Shape *shape1 = new Circle(4.0),用父类指针指向一个子类对象之后的delete shape1会释放掉父类所指向的子类对象吗?

正在回答

3 回答

如果加了 virtual 父类就会通过虚函数表 和虚函数表指针 找到子类的析构函数 从而释放掉子类对象

0 回复 有任何疑惑可以回复我~

Shape 类的析构函数前 如果没加virtual,则只会执行父类的 析构函数,如果加了 virtual,则先执行子类的析构函数,在执行父类的析构函数

0 回复 有任何疑惑可以回复我~

虚析构函数就这样的功能啊,虚析构函数就是为了实现可以用父类对象指针来销毁子类对象(我的理解)

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66217    人
  • 解答问题       334    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

delete释放父类指针指向的子类对象的时候会成功吗

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号