1、new_handler

new_handler位于头文件< new >中 
当new无法成功申请内存,在抛出异常之前,new会调用一个系统默认或用户指定的错误处理函数,也就是这里的new_handler。我们可以通过set_new_handler来设置我们的错误处理函数。

2、 =default

一般地,编译器会默认为一个类生成:

默认构造函数:X()
拷贝拷贝构造函数:X(const X &)
拷贝赋值运算符:X& operator(const X&)
移动构造函数:X(x&&)
析构函数:~X()
如果用户自定义了其中部分或全部,则编译器不再生成对应的。

函数 = default明确地告诉编译器,自己不生成这些中的一些或全部,由编译器来生成。

 使用默认构造函数,使用默认析构函数

3、=delete函数

定义一个类的成员函数时,如果后面使用"=delete"去修饰,那么就表示这个函数被定义为deleted,也就意味着这个成员函数不能再被调用,否则就会出错。

在C++11之前,当我们希望一个类不能被拷贝,就会把构造函数定义为private,但是在C++11里就不需要这样做了,只需要在构造函数后面加上=delete来修饰下就可以了。

第二个应用就是避免出现隐式转换

void func(int data) { printf("data: %d\n", data); }

void func(double data)=delete;

当使用func(100.0),为避免发生隐式转换而去使用第一个函数,那么就标明没有对应double这个参数的函数,也就是不会让其使用

c++内存管理3: new handler、=default、=delete函数相关推荐

  1. C++内存管理__内存管理(栈、堆(new/delete)、自由存储区(malloc/freee)、全局/静态存储区、常量区)!堆栈内存管理方式的区别

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...

  2. C++内存管理全景指南

    导语 深入理解C++内存管理,一文了解所有C++内存问题,万字长文,建议收藏 随着人工智能,云计算等技术的迅猛发展,让Python,go等新兴语言流行了起来,很多人以为C++可能已经过时了,确实,C+ ...

  3. 深入理解C++内存管理

    深入理解C++内存管理 一文了解所有C++内存的问题 AlexCool 目录 一  C++内存模型 二  C++对象内存模型 三 C++程序运行内存空间模型 四  C++栈内存空间模型 五 C++堆内 ...

  4. 侯捷C++八部曲笔记(五、内存管理)

    侯捷C++八部曲笔记(五.内存管理) 表达式new.delete 基本用法 array new.array delete replacement new ----------------------- ...

  5. 《C++应用程序性能优化::第五章动态内存管理》学习和理解

    <C++应用程序性能优化::第五章动态内存管理>学习和理解 说明:<C++应用程序性能优化> 作者:冯宏华等 2007年版. 2010.8.29 cs_wuyg@126.com ...

  6. 内存管理模拟程序c语言,C语言 内存管理详解

    本文出自: 伟大的Bill Gates曾经失言: 640K ought to be enough for everybody -Bill Gates 1981. 程序员们经常编写内存管理程序,往往提心 ...

  7. C/C++内存管理详解

    内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...

  8. c++new时赋初值_C高级编程精髓之内存管理,万千码农踩过的雷,大神带你走出雷区...

    今天给大家分享C高级编程精华片之内存管理--欢迎跟大家一起踏进内存这片雷区,然后带大家从雷区中走出来! 程序员们经常编写内存管理程序,往往提心吊胆.如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并 ...

  9. C++内存管理(转)http://www.cnblogs.com/qiubole/archive/2008/03/07/1094770.html

    [导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不 ...

  10. C++进阶——内存管理(一)

    [导语] 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不 ...

最新文章

  1. eclipse安装maven
  2. 本硕非科班,单模型获得亚军!
  3. 第三十一次发博不知道用什么标题好
  4. 记录一下Python-Qt中按钮点击事件无响应解决方案
  5. Codeforces 766E
  6. python正则表达式中的转义字符_详解python中正则表达式的反斜线的转义功能
  7. cv::Mat 与 float 互换,实现 argmax 得到像素点分类
  8. Java 9:JShell
  9. xmpp muc 群聊协议 3
  10. html定位fix,html 定位fixed
  11. HiveQL: 数据操作
  12. 自动处理可载入模块命令 modprobe
  13. javascript中数据类型及转换、String()和toString()的区别
  14. 批处理通过bat文件定时调起本地的计算器或者画图工具并关闭
  15. 缓存框架 EhCache 使用 3
  16. ubuntu 下安装 face_recognition
  17. pytorch model.cuda()花费时间很长
  18. Dremel和Hadoop
  19. Gitea 1.4 未授权远程代码执行漏洞复现
  20. 【Linux安全管理】Firewalld详解

热门文章

  1. 【Houdini官方入门教程翻译】概述——UV和纹理贴图
  2. 你的流量卡是快递激活还是自主激活?看看派送的快递就知道了!
  3. CAN总线入门(硬件部分)
  4. 虚拟分布式交换机配置与管理
  5. 分享保护视力应用桌面
  6. windows_mac键盘快捷键
  7. 物理学的大厦已经建成,只是天边还有两朵小乌云
  8. python对txt文本文件进行读写操作
  9. POJ2429 GCDLCM Inverse(整数分解,由GCD+LCM求a,b)
  10. MSN登陆不上去的解决方法