条款07:对多态基类声明虚析构函数
来源:互联网 发布:花生壳还有免费域名吗 编辑:程序博客网 时间:2024/06/05 16:53
- polymorphic(带多态性质)的base classes应该声明一个虚析构函数;如果base classes 带有任何析构函数,那么就该声明一个虚析构函数
classes的设计目的如果不是作为base classes使用,或者不具备多态性质,就不应该声明虚析构函数
对于多态基类,由于可能存在用基类指针指向派生类对象,并经由此基类指针delete,如果没有声明虚析构函数,就会造成只delete基类部分,而没有析构派生类部分,因此造成资源泄漏。
而对于第二种情况,声明多余的析构函数会造成空间浪费,从深度探索C++对象模型里可以知道,如果声明虚函数,就会产生一个虚函数表,对虚函数的调用其实是根据虚函数表中对应的虚函数指针调用的,这样一个虚函数表会让对象附加一个指针大小空间。
阅读全文
0 0
- 条款07:对多态基类声明虚析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款:07 为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款07 为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款 07 为多态基类声明vitual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- Effective C++学习7 条款07:为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数(Declare destructors virtual in polymorphic base classes.)
- Effective c++学习笔记——条款07:为多态基类声明virtual析构函数
- Effective c++学习笔记——条款07:为多态基类声明virtual析构函数
- 《Effective C++》学习笔记条款07 为多态基类声明virtual析构函数
- Effective C++ 条款07 为多态基类声明virtual 析构函数
- Effective C++:条款07:为多态基类声明virtual析构函数
- Maven生成可以直接运行的jar包的多种方式
- PHP获取二维数组中某一列的值集合
- vfscanf用法解析
- apache 配置
- S32K144 EVB之FTM
- 条款07:对多态基类声明虚析构函数
- 【广告】前端小白到30K月薪的路径有哪些
- java多态的一道典型的例题
- 困扰你的Git操作?
- 抽象工厂模式
- 加载本地图片
- spring 多数据源事务
- allegro操作实践
- C#WINFORM获取本机IPv4地址