码迷,mamicode.com
首页 >  
搜索关键字:析构    ( 2765个结果
Effective C++ 笔记三 资源管理
条款13:以对象管理资源许多资源被动态分配于heap内而后被用于单一区块或函数内。它们应该在控制流离开那个区块或函数时被释放。标准程序库提供的auto_ptr正是针对这种形式而设计的特制产品。auto_ptr是个类指针对象,也就是智能指针,其析构函数自动对其所指对象调用delete。以对象管理资源的...
分类:编程语言   时间:2014-08-31 19:59:51    阅读次数:292
Effective C++ 笔记二 构造/析构/赋值运算
条款05:了解C++默默编写并调用哪些函数编译器默认声明一个default构造函数、一个copy构造函数、一个copy assignment操作符和一个析构函数。这些函数都是public且inline。1 class Empty {2 public:3 Empty() {...}4 ...
分类:编程语言   时间:2014-08-31 18:25:41    阅读次数:225
C++11 智能指针unique_ptr使用 -- 以排序二叉树为例
用智能指针可以简化内存管理。以树为例,如果用普通指针,通常是在插入新节点时用new,在析构函数中调用delete;但有了unique_ptr类型的智能指针,就不需要在析构函数中delete了,因为当unique_ptr类型的指针P生命结束时(比如对于局部变量,程序执行到局部变量的作用域范围之外).....
分类:编程语言   时间:2014-08-31 15:38:31    阅读次数:246
从一个笔误引起的思考
几天前组内一个同事做技术分享,其中谈到一个问题,如果new出一个对象但是delete的时候,如果写成delete[]效果会如何。其中有同事在实际测试中发现如果是debug版本会抛异常,但是Release会反复执行该对象的析构函数。debug版本拋异常很容易理解,本来这么写就不对的,但是Release...
分类:其他好文   时间:2014-08-31 10:26:31    阅读次数:175
malloc和new的区别
1,malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。2,对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/...
分类:其他好文   时间:2014-08-30 23:01:10    阅读次数:193
构造函数、析构函数抛出异常的问题
构造函数可以抛出异常。C++标准指明析构函数不能、也不应该抛出异常。那么如果对象在运行期间出现了异常,C++异常处理模型有责任清除那些由于出现异常所导致的已经失效了的对象(也即对象超出了它原来的作用域),并释放对象原来所分配的资源,这就是调用这些对象的析构函数来完成释放资源的任务,所以从这个意义上说...
分类:其他好文   时间:2014-08-30 22:56:40    阅读次数:222
new和malloc
两者区别;1malloc必须检查是否分配成功。New不需要,要不成功要不异常2malloc不对申请的变量初始化,而new可以对类类型运用构造函数进行初始化3对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函...
分类:其他好文   时间:2014-08-30 21:36:10    阅读次数:291
复制对象时切记复制每一个成分
前言 标题一看似乎是非常直观简单,没必要特别写下一篇随便记录。 然而,在实际开发中,你会发现做到这一点对于经验不足的 C++ 程序员来说绝对是一个挑战。 要做到复制每一个成分,就一定小心下面说到的两点。第一点:类中新增了成员变量之后,需要在自定义的构造函数,析构函数,赋值运算符重载函数,拷贝构...
分类:其他好文   时间:2014-08-30 17:41:39    阅读次数:222
不要在构造和析构函数中使用虚函数
前言 本文将讲解一个新手 C++ 程序员经常会犯的错误 - 在构造/析构函数中使用虚函数,并分析错误原因所在以及规避方法。错误起因 首先,假设我们以一个实现交易的类为父类,然后一个实现买的类,一个实现卖的类为其子类。 这三个类的对象初始化过程中,都需要完成注册的这么一件事情 (函数)。然而,各...
分类:其他好文   时间:2014-08-30 11:13:29    阅读次数:195
一些平时不注意到东西
++i 快一些,但对int这种内置类型影响不大 看看C++的++运算符重载那章,会明白的 前置++?返回当前对象的引用,返回的只是一个地址,很快 后置++?返回一个原对象的备份,要调用二次拷贝构造函数和二次析构函数,即使使...
分类:其他好文   时间:2014-08-29 18:37:58    阅读次数:222
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!