【原创】注意析构函数的使用

清单:虚析构函数使用

 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html5调用手机摄像头和相册,h5 调用手机摄像头/相册

html 部分js 部分getBase64: function (file, callback) {var maxWidth 640if (file.files && file.files[0]) {var thisFile file.files[0]// if (thisFile.size > 524288) {// this.showToast("图片不能超过512k!");// return;// }var…

hadoop中实现定制Writable类

Hadoop中有一套Writable实现可以满足大部分需求,但是在有些情况下,我们需要根据自己的需要构造一个新的实现,有了定制的Writable,我们就可以完全控制二进制表示和排序顺序。 为了演示如何新建一个定制的writable类型,我…

html5carousel图片轮播,jQuery响应式轮播图插件VM Carousel

插件描述:VM Carousel是一款jQuery响应式轮播图插件。该jquery轮播图插件支持自动播放模式,支持动态改变图片尺寸,支持居中模式,以及无限循环等。使用方法在页面中引入jquery.vm-carousel.css,jquery和jquery.vm-carou…

tableview或scrollview Y轴发生变化解决方案

在viewDidLoad中加入 self.automaticallyAdjustsScrollViewInsets NO; 转载于:https://www.cnblogs.com/mo-shou/p/4335163.html

NOIP 货车运输

题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物…

那是计算机房吗英语否定回答,【微课+教材+听力+知识点】PEP四年级英语下册 Unit 1...

原标题:【微课教材听力知识点】PEP四年级英语下册 Unit 1微课:Unit 1-PartA微课:Unit 1-PartB微课:Unit 1-PartC课文教材动画教材听力Unit 1 My schoolUnit 1 单词▲点右上方绿标即可收听Words in Unit 1first floor [ˌfɜːst ˈ…

django html显示xml,如何将HTML与Django集成?

Django可能会为此而大肆渲染。如果您想要的只是一种将表单链接到某些后端Python代码的方法,那么像Flask这样的微框架可能是更好的选择。下面是你如何用烧瓶做一个简单的表格:创建一个目录project,其中有一个目录templates你的模板很简单&…

PropertyGrid控件 分类(Category)及属性(Property)排序

最近在做表单设计器,设计器上的控件都是我们自己封装的,但每个属性类别里的属性是按照属性的拼音排序的,现在想按照PropertyIndex标识进行排序(PropertyIndex的后三位是用来标识编辑器的)。 具体实现如下: …

css3标签

-moz代表firefox浏览器私有属性 -ms代表ie浏览器私有属性 -webkit代表chrome、safari私有属性 -o代表opera私有属性 border-radius:2em; 向div元素添加圆角边框,这是一种缩小写法,等价于: border-top-left-radius:2em; border-top-right-radius:2em; bor…

用计算机计算出密码,自带计算器的密码

手机、电脑都会有自带的计算器,用惯了简易的计算器功能,不知道有没有感觉 iPhone 自带的计算器难用?后来才发现原来它还可以使用科学计算器进行指数函数、对数函数和三角函数的计算。只需要将 iPhone 转到横排模式就可以:这算不算…

PHP内核探索之变量(6)- 后续内核探索系列大纲备忘

年前因为工作比较饱和,现在又忙着换工作的事情,基本停止了对博文的更新。后续的博文,还是慢慢补上吧。 为了不至于过于发散,先搞个未成形的大纲,如下: PHP内核探索之变量 不平凡的字符串  PHP内核探索之…

ios 开发日记 21 -自动处理键盘事件的第三方库:IQKeyboardManager

我们写界面要考虑很多用户体验问题,键盘事件的响应就是比较麻烦的一种。我们需要监听键盘事件,考虑点击背景收起键盘、考虑键盘遮挡输入框问题等等,而且每个界面都要做这么一套。这个库帮我们解决了这个事情。 这个库的下载地址:h…

shopify在哪里填写html,[Shopify开店教程]添加嵌入代码

添加嵌入代码在Shopify管理员中创建购买按钮后,您就可以将其添加到您自己的网站或博客中。将嵌入代码添加到您网站的源HTML的过程有所不同,具体取决于您希望购买按钮和购物车在您的发布平台上显示的方式和位置,以及有时您在该平台上使用的主题…

activity生命周期图

转载于:https://www.cnblogs.com/aqianglala/p/4344431.html

华硕台式计算机光盘怎么启动不了,华硕笔记本怎么用光盘重装系统 笔记本重装系统失败怎么办...

华硕笔记本是现在非常热门的笔记本品牌,很多的华硕笔记本用户在重装系统的时候,大多数会用上光盘,这种重装方式较为简单,所以备受青眯,不过呢还是有很多电脑用户不知道怎么用光盘重装系统,没关系&#xff0…

怎么安装Win10,硬盘安装Win10系统图文教程

2019独角兽企业重金招聘Python工程师标准>>> http://jingyan.baidu.com/article/f25ef254613ffd482c1b8236.html 分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友…

iOS高级必备

1.你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗? Objecitve-C的重要特性是Runtime(运行时&…

游戏计算机重要参数,这真的很重要吗 游戏鼠标三大参数之谜

1游戏鼠标三大参数:采样率[中关村在线键鼠频道原创]游戏鼠标作为目前最受消费者关注的外设产品,其销量以及利润在市场上也是表现最为出色的,众多游戏外设厂商也推出各种各样的游戏鼠标,各种霸气的名字更是让我们看的眼花缭乱&…

[Android]Activity启动过程

Android系统启动加载流程: 参考图 Linux内核加载完毕启动init进程init进程fork出zygote进程zygote进程在ZygoteInit.main()中进行初始化的时候fork出SystemServer进程SystemServer进程开启的时候初始化ActivityThread和ActivityManagerService(其它还有P…

CentOS 7 中firewall-cmd命令

在 CentOS 7 暂时开放 ftp 服务# firewall-cmd --add-serviceftp永久开放 ftp 服务# firewall-cmd --add-serviceftp --permanent永久关闭# firewall-cmd --remove-serviceftp --permanentsuccess让设定生效# systemctl restart firewalld检查设定是否生效# iptables -L -n | g…