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

这个例子为什么没有虚构函数

这个为什么 没有加虚构函数

正在回答

5 回答

不是这样的,写了析构函数,使用new申请指针再delete会报错,再定义析构函数的位置
0 回复 有任何疑惑可以回复我~

Student stu;//在栈中实例化Student。内存由系统控制,不需要自己释放

Student * stup = new Student();//在堆中实例化Student。内存由自己控制,系统不管。

delete stup;//这个时候调用析构函数

stup = NULL;

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

WORLD_CONNECTED

没用定义析构函数的时候,系统自动生成析构函数。 也就是说,如果我们自定义了析构函数,我们将接过系统权限,自己操作析构函数。
2017-12-15 回复 有任何疑惑可以回复我~

虚析构函数适用场景是:继承关系存在,当使用父类指针指向堆中申请的子类对象,需要销毁子类及父类对象时,通过虚析构函数能使得delete 父类指针之前,执行子类对象的虚析构函数,进而销毁子类对象,达到保护内存的目的。 因此关键点就是父类指针指向堆中申请的子类对象,如果没有使用new申请子类对象,就不需要考虑虚析构函数。

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

因为这里的类内并没有涉及到用new从堆中分配内存,所以不写也没关系,建议你重新看一下之前关于虚析构函数的视频,那里有详细解答

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

你这问题描述不太清楚啊,你说的是接口类没有析构函数?

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

举报

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

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

进入课程

这个例子为什么没有虚构函数

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

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

帮助反馈 APP下载

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

公众号

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