博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【原创】注意析构函数的使用
阅读量:6428 次
发布时间:2019-06-23

本文共 448 字,大约阅读时间需要 1 分钟。

清单:虚析构函数使用

1 class X {  2  public:  3   virtual ~X()= default; // 编译器自动生成 defaulted 函数定义体 4  private:  5   int x;  6  };  7  class Y: public X {  8  private:  9   int y; 10  }; 11  int main(){ 12   X* x = new Y; 13   delete x;
清单中x为X指针,
x指向的是Y对象(Y继承X),所以x基类指针只是指向Y对象的基类部分。
如果X的析构函数不是虚函数,delete x时只是调用了X的析构函数,释放了Y的基类子对象,从而造成内存泄漏。所以需要将X的析构函数定义为虚函数,利用多态性。同时为了利用编译器生成的合成析构函数的效率,可以在后面加上=default。
本文链接:  

转载于:https://www.cnblogs.com/cposture/p/4935186.html

你可能感兴趣的文章
springsecurity 源码解读 之 RememberMeAuthenticationFilter
查看>>
HTML5标准学习 - 编码
查看>>
JS 时间戳转星期几 AND js时间戳判断时间几天前
查看>>
UVa11426 最大公约数之和(正版)
查看>>
mime
查看>>
SQL练习之求解填字游戏
查看>>
DOM
查看>>
UIApplication
查看>>
12:Web及MySQL服务异常监测案例
查看>>
数据库性能优化之冗余字段的作用
查看>>
DBA_实践指南系列9_Oracle Erp R12应用补丁AutoPatch/AutoControl/AutoConfig(案例)
查看>>
数据库设计三大范式
查看>>
ionic 字体的导入方法
查看>>
IP路由原理
查看>>
内部类详解
查看>>
洛谷P2726 阶乘 Factorials 数学
查看>>
类加载机制
查看>>
火柴棒等式(2008年NOIP全国联赛提高组)
查看>>
mongodb int型id 自增
查看>>
【转】关于大型网站技术演进的思考(十八)--网站静态化处理—反向代理(10)...
查看>>