中级农民
- 积分
- 278
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-8-19
- 最后登录
- 1970-1-1
|
当derived class对象通过指向该对象的base class指针删除,且base class带有一个non-virtual的析构函数,那么该删除操作的结果是没有定义的,很可能导致对象的derived成分没有被销毁。“局部销毁”现象会形成资源泄露等后果。
给base class加一个virtual的析构函数,删除derived class的对象就会调用你想要的过程。
所以说继承一个带有non-virtual descrutor的类是不明智的,但是C++规范并没有禁止这一做法。
个人总结自《Effective c++》 条款07
|
|