effective c++ 条款7,8(为多态基类声明virtual析构函数,别让异常逃离析构函数)
2017-04-11 11:41
225 查看
若gettimekeeper指针指向atomicclock对象,上述代码执行时,atomicclock的成员变量有可能没被销毁,而其析构函数也未被执行,但是基类已经被销毁。可能会引起资源泄漏
解决方案:给基类一个virtual析构函数
加上关键字之后,会销毁整个对象,包括派生类对象
添加virtual关键字会增加对象的体积,因为出现了虚函数表和虚函数指针,所以,当一个类不作为基类的时候,不要加virtual关键字给析构函数
析构函数的运作方式:最深层次派生的类的析构函数最先调用,然后是每一个基类的析构函数
析构函数绝对不要有异常
相关文章推荐
- Effective C++ 条款08 别让异常逃离析构函数
- Effective C++_笔记_条款07_为多态基类声明virtual析构函数
- 《Effective C++》学习笔记条款07 为多态基类声明virtual析构函数
- Effective C++ -----条款08: 别让异常逃离析构函数
- Effective C++ 条款07 为多态基类声明virtual 析构函数
- Effective C++--条款07:为多态基类声明virtual析构函数
- Effective C++ 条款08 别让异常逃离析构函数
- Effective C++学习笔记 条款07:为多态基类声明virtual析构函数
- [Effective C++]条款08 别让异常逃离析构函数
- Effective C++学习7 条款07:为多态基类声明virtual析构函数
- 读书笔记《Effective C++》条款07:为多态基类声明virtual析构函数
- Effective C++ 条款七 为多态基类声明virtual析构函数
- 《Effective C++》条款07:为多态基类声明virtual析构函数
- Effective c++(第三版) 条款7:为多态基类声明virtual析构函数
- effective c++ 条款07(为多态基类声明virtual析构函数)整理
- 读书笔记《Effective c++》 条款07 为多态基类声明virtual析构函数
- Effective C++_笔记_条款08_别让异常逃离析构函数
- 读书笔记《Effective c++》 条款08 别让异常逃离析构函数
- [Effective C++]条款07 为多态基类声明virtual析构函数
- Effective C++ 条款8 别让异常逃离析构函数