j*******a 发帖数: 101 | |
Z**********4 发帖数: 528 | 2 vitual destructor 是virtual function 的一种吧。。 |
b*****c 发帖数: 1103 | 3 destructor最好宣告成virtual,否则会很麻烦 |
l*****a 发帖数: 14598 | 4 你最好说说理由
否则肯定不会让你过
【在 b*****c 的大作中提到】![](/moin_static193/solenoid/img/up.png) : destructor最好宣告成virtual,否则会很麻烦
|
e*********l 发帖数: 136 | 5 Base *basePtr = new Derived()
~basePtr()
destructor如果不是virtual的话就出问题了
【在 l*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 你最好说说理由 : 否则肯定不会让你过
|
y*******g 发帖数: 6599 | 6 delete basePtr吧。
【在 e*********l 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Base *basePtr = new Derived() : ~basePtr() : destructor如果不是virtual的话就出问题了
|
e*********l 发帖数: 136 | 7 恩
【在 y*******g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : delete basePtr吧。
|
l*****a 发帖数: 14598 | 8 为啥一定要有derive class?
没有的话也declare成virtual 吗?
【在 e*********l 的大作中提到】![](/moin_static193/solenoid/img/up.png) : Base *basePtr = new Derived() : ~basePtr() : destructor如果不是virtual的话就出问题了
|
y*******g 发帖数: 6599 | 9 没有不用,不过你需要保证其他的code无法继承才行。。
c++没有final keyword, 这个比较麻烦
【在 l*****a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 为啥一定要有derive class? : 没有的话也declare成virtual 吗?
|
l*****a 发帖数: 14598 | 10 简单说,virtual destructor不是非有不可
什么时候定义比较合适effective c++上写了
大家去看看吧
因为没必要非用base class pointer to delete derive class object
so ,virtual destructor is not a must
【在 y*******g 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 没有不用,不过你需要保证其他的code无法继承才行。。 : c++没有final keyword, 这个比较麻烦
|
d*******u 发帖数: 186 | 11 If you have some resources which have to be released in the base class,
the destructor has to be defined as virtual, otherwise only the destructor
of the inherit be called.
【在 j*******a 的大作中提到】![](/moin_static193/solenoid/img/up.png) : hehe...
|