【原创】注意析构函数的使用
清单:虚析构函数使用
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。
本文链接:【原创】注意析构函数的使用 http://www.cnblogs.com/cposture/p/4935186.html
转载于:https://www.cnblogs.com/cposture/p/4935186.html
【原创】注意析构函数的使用相关推荐
- (原创)c#学习笔记08--面向对象编程简介01--面向对象编程的含义03--对象的生命周期--构造函数和析构函数...
8.1.3 对象的生命周期 每个对象都有一个明确定义的生命周期,除了"正在使用"的正常状态之外,还有两个重要的阶段: 构造阶段: 对象最初进行实例化的时期.这个初始化过程称为构造 ...
- java 它 引用(基本类型的包装,构造函数和析构函数c++不同)
一个:java 和c++参考控制 他提到引用,我们会想到java它不喜欢c++里面的指针.当然java内引用和c++里面的引用是不同的. 比如: 比方C++中,我对某一个函数的声明.int a(i ...
- php中的构造函数和析构函数,php 中构造函数和析构函数
构造函数: 在对象实例化时被调用,一个类中只能有一个构造函数,在类中起初始化的作用. 析构函数: 在对象结束时被自动调用. 话不多说,用一段代码来说明两者的区别: //定义一个类 class Pers ...
- C++子类析构时要调用父类的析构函数吗?
析构函数调用的次序是先派生类的析构后基类的析构,在基类的的析构调用的时候,派生类的信息已经全部销毁了.定义一个对象时先调用基类的构造函数.然后调用派生类的构造函数:析构的时候恰好相反:先调用派生类的析 ...
- c++构造函数和析构函数的调用顺序研究
构造函数与析构函数的调用顺序 构造函数与析构函数的调用顺序 构造函数与析构函数的调用顺序 1)当类中有成员变量是其它类的对象时,首先调用成员变量的构造函数,调用顺序与声明顺序相同:之后调用自身类的构造 ...
- C++学习笔记25,析构函数总是会宣布virtual
为了永远记住析构函数声明virtual----><<effective c++>> 为这句话不一定对,但无需质疑的是这句话是非常实用的. 查看以下的样例: #includ ...
- 《从零开始学Swift》学习笔记(Day 40)——析构函数
原创文章,欢迎转载.转载请注明:关东升的博客 与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程.在析构过程中也会调用一种特殊的方法deinit,称为析构函数.析构函数dein ...
- C++11六大函数(构造函数,移动构造函数,移动赋值操作符,复制构造函数,赋值操作符,析构函数)
转载自:http://blog.csdn.net/jofranks/article/details/17438955 版权声明:本文为博主原创文章,未经博主允许不得转载. 在C++中,有三大函数复制控 ...
- **修炼一名程序员的职业水准(林庆忠__署名原创)**
业精于勤荒于嬉,行成于思毁于随.以此文章激励自己. 修炼一名程序员的职业水准(林庆忠__署名原创) 作者:林庆忠,1990年毕业于昆明工学院计算机软件专业,后又于1999年毕业在南京大学 完成软件工程 ...
最新文章
- vs2015编译android,VS2015 Update2 构建 Android 程序问题汇总
- 第16课:项目实战——利用 PyTorch 构建 CNN 模型
- looper message handler之间的关系
- 小白 vue-cli 项目打包
- KubeVela 成为 CNCF 沙箱项目,让云端应用交付更加简单
- Android网络课程笔记-----本地音乐播放
- 【洛谷1341】无序字母对(欧拉回路)
- php 扩展加载顺序,关于PHP中extension加载顺序问题的解决方法
- 微信扫描二维码在内置浏览器打不开文件的下载链接怎么办?哪些api接口可以解决...
- ThinkPHP/---微信支付PC流程
- 软件园区网络设计之网络详细设计
- CTF杂项-BUUCTF竞赛真题WriteUp(2)
- 电脑总是弹出explorer.exe->应用程序错误界面(电脑小妙招)
- OpenCV之光流法运动目标跟踪
- 基于语音的情绪识别系统(Python)
- 搭建自已的turn服务器
- Pandas函数方法分类 参数说明+实例分析!!
- android组合按键截屏,三星安卓手机截图组合键图文汇总(4种)
- 1646. Prime Path
- 好书推荐:《Google.Android开发入门与实战》
热门文章
- Python模块(3)--PIL 简易使用教程
- springcloud阿里巴巴五大组件_如何无缝迁移 SpringCloud/Dubbo 应用到 Serverless 架构
- Java调用百度OCR文字识别的接口
- Linux学习笔记(五)
- 聊聊并发——生产者消费者模式
- OpenCL(CUDA5.0) + Visual Studio 2010 环境配置
- 运动并不是最好的减肥办法,控制饮食也不是
- js中动态引入css样式文件
- my40_MySQL锁概述之意向锁
- asp.net ajax的学习第一篇