2 hchchc6016 hchchc6016 于 2016.04.10 20:36 提问

小白求助c++中一些关于多态的问题

1.基类的析构函数不是虚函数,在析构派生类的时候基类会不会被析构
2.基类的析构函数不是虚函数,在析构基类类的时候派生类会不会被析构
3.虚基类的析构函数是不是虚函数?

3个回答

pppploi8
pppploi8   2016.04.10 20:56
已采纳

1.无论基类的析构函数是不是虚函数,析构派生类的时候都会调用基类析构函数
2.如果从派生类被引用为基类然后析构,那么会导致只调用基类析构函数,而不调用派生类析构函数,所以基类析构函数应定义为虚函数
3.虚基类是解决多重继承时基类被多次继承导致的冲突的(如BC类继承于A,D类多重继承于BC,则基类A出现了两次),与虚函数无关,虚基类的析构函数依然应该手动加上virtual关键字

stadyhungry
stadyhungry   2016.04.10 23:09

楼上说的不错
对于第二条基类的析构函数不是虚函数,析构基类时,派生类的析构函数当然不会被调用;当基类的析构函数是虚函数时,也只有派生类的指针指向基类时,当析构函数调用时,也是先调用派生类的析构函数在调用基类的析构函数。

CSDNXIAON
CSDNXIAON   2016.04.10 20:43

C++中的多态问题
C++中的多态有关问题
关于C++中的 多态 问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!