课程
/后端开发
/C++
/C++远征之多态篇
这个为什么 没有加虚构函数
2017-03-31
源自:C++远征之多态篇 3-6
正在回答
Student stu;//在栈中实例化Student。内存由系统控制,不需要自己释放
Student * stup = new Student();//在堆中实例化Student。内存由自己控制,系统不管。
delete stup;//这个时候调用析构函数
stup = NULL;
WORLD_CONNECTED
虚析构函数适用场景是:继承关系存在,当使用父类指针指向堆中申请的子类对象,需要销毁子类及父类对象时,通过虚析构函数能使得delete 父类指针之前,执行子类对象的虚析构函数,进而销毁子类对象,达到保护内存的目的。 因此关键点就是父类指针指向堆中申请的子类对象,如果没有使用new申请子类对象,就不需要考虑虚析构函数。
因为这里的类内并没有涉及到用new从堆中分配内存,所以不写也没关系,建议你重新看一下之前关于虚析构函数的视频,那里有详细解答
你这问题描述不太清楚啊,你说的是接口类没有析构函数?
举报
本教程将带领大家体会面向对象三大特性中的多态特性
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号