77问答网
所有问题
C++中虚函数中如何调用子类的析构函数
Tool *tool = new Rule();
delete tool;
tool = NULL;
tool为只含有纯虚函数的接口类,那么这种情况下如何析构子类的堆中对象,使用delete无法调用~
举报该问题
推荐答案 2018-05-31
将Tool的析构函数声明为virtual,delete时即可自动调用子类的析构函数。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://77.wendadaohang.com/zd/IpppYNYIqY3383GYWI.html
相似回答
关于
虚析构函数的调用
问题
答:
虚函数存放在类的虚表中,
虚函数的
调用如果不是显示调用的话,默认是
调用子类的虚函数
。当基类的析构函数是虚函数的时候,子类继承基类的虚函数,所以
子类的析构函数
也是虚函数。如上面的例子,虽然new CExtend赋值给了CBase *PBase,但当调用delete pBase时,由于虚函数的动态关联,首先调用的是子类中...
c++中
类
的
构造与
析构
问题
答:
回答:自己上机器调试吧,不然是学不会语言的啦
C++
new出来的派生类delete后
怎么调用析构函数
答:
父类的析构函数必须定义成
虚函数
,这样在delete父类指针时,根据多态的特性,会
调用子类的析构函数
,所以父类和子类都能析构。所以 ~Base(); 应改成 virtual ~Base();所以一般情况下,如果一个类有可能成为父类,我们就需要把它的析构函数定义成虚函数。程序结束之后,操作系统确实会自动回收内存,...
c++
析构函数
是在什么时候执行
答:
c++
析构
函数调用
时间:1、对象生命周期结束,被销毁时;2、delete指向对象的指针时,或delete指向对象的基类类型指针,而其基类虚构函数是
虚函数
时;3、对象i是对象o的成员,o
的析构函数
被调用时,对象i的析构函数也被调用。
C++
是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象...
C++
题目,急,希望能有完整解答
答:
){ cout<<"executing Circle destructor"<<endl;} private:int radus;};int main(){ Shape *p=new Circle(1);delete p;return 0;} 其实加不加virtual 就决定了是否会
调用子类的析构函数
,如果不加virtual不会建立
虚函数
表,也就是找不到子类的析构函数的入口地址,没有办法调用 仅此而已 ...
C++中虚函数
的作用是什么?它应该
怎么
用呢?
答:
C++中虚函数
的用法:比如你有个游戏,游戏里有个虚基类叫「怪物」,有纯虚函数 「攻击」。然后派生出了三个
子类
「狼」「蜘蛛」「蟒蛇」,都实现了自己不同的「攻击」函数,比如狼是咬人,蜘蛛是吐丝,蟒蛇把你缠起来。然后出现好多怪物的时候就可以定义一个 虚基类指针数组,把各种怪物的指针给它,...
C++虚析构函数
问题
答:
=> 删除 Derived::vtable 所以第一次
调用
~Base 会调用 Desived 类的 delete 重载,第二次调用 delete p 时,实际上 Desived 类的 delete 重载已经不存在于 vtable 中了,所以改为调用基类的 delete 重载,继而调用基类
的析构函数
。即:delete p; => Base::delete => Base::~Base => 删除 ...
大家正在搜
在构造函数和析构函数中调用虚函数
析构函数中调用虚函数采用静态绑定
析构函数中调用虚函数采用静态联编
析构函数中调用虚函数
析构函数和虚析构函数
构造函数可以调用虚函数吗
析构函数可以是虚函数
调用虚函数
析构函数
相关问题
C++ 为什么设置基类的析构函数为虚函数
为什么C++基类析构函数写成虚函数
c++ 在父类声明一个纯虚函数,怎样在父类构造函数中调用子类...
c++中 析构函数中可以调用虚函数么
C++中,子类会继承父类的虚函数表!对于父类的析构函数(虚函...
C++ new出来的派生类delete后怎么调用析构函数
C++中用父类指针指向子类实例,用父类指针调用虚函数,问调用...
构造函数和析构函数中能否调用虚函数