码迷,mamicode.com
首页 >  
搜索关键字:析构    ( 2765个结果
Effective C++ 条款16
成对使用new和delete时要采取相同形式本节条款知识点在于delete和delete[]的区别 大家都知道在new一个对象的时候要delete一个对象,在new 一个对象数组时要delete[]才是正确的。大家也知道new产生两个行为,一个是申请对象所需内存,另一个是调用类构造函数初始化对象。 那么,delete的行为也有两个,一个是调用对象的析构函数,另一个是回收内存。而new[]是对每个...
分类:编程语言   时间:2015-06-24 16:36:28    阅读次数:147
虚析构基类函数
考虑以下代码 class?Ref { public: virtual?~Ref() { cout?<<?"~Ref()"?<<?endl; } }; class?People?:public?Ref { public: ~People() { cout?<<?"~People()"?<<?endl; } }; 以下代码输出...
分类:其他好文   时间:2015-06-24 14:47:55    阅读次数:99
Effective C++ 条款13
以对象管理资源资源的种类很多,动态分配的内存、文件描述器、互斥锁、图像界面中画刷、数据库连接、网络socket等。资源一般是有限的,当你不用时,必须释放。不然就会造成资源浪费,更严重的情况下,非法占有所有资源导致程序崩溃。那么我们怎么样才能合理使用资源?换句话说我们应该怎么样才能做到资源的释放? 本节的核心点是:利用析构函数自动调用机制实现资源的合理释放。举个例子:class Investment...
分类:编程语言   时间:2015-06-24 10:59:50    阅读次数:153
[数据结构]队列之顺序队列的类模板实现
队列是一种限定存取位置的线性表,允许插入的一端叫做队尾(rear),允许删除的一端叫做队首(front)。 队列具有FIFO的性质 队列的存储表示也有两种方式:基于数组的,基于列表的。基于数组的叫做顺序队列,基于列表的叫做链式队列。 一下是基于动态数组的顺序队列的模板类的实现。 顺序队列的抽象基类如下所示:只提供了接口和显式的默认构造函数和析构函数,在派生类中调用。 #i...
分类:其他好文   时间:2015-06-23 15:50:28    阅读次数:191
有了malloc/free为什么还要new/delete ?
malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。由于malloc/free...
分类:其他好文   时间:2015-06-23 10:03:39    阅读次数:109
类的构造函数和析构函数
构造函数是为了让类对象被创建的时候,自动进行初始化,而不是接口使用者自己调用函数去进行初始化。 析构函数是为了让类对象过期时,进行最后的清理工作. 总而言之,就是为了对象被销毁时所调用的函数. 注意:构造函数和析构函数都没有返回值和声明类型 构造函数: 声明方法:1 class_name::cl.....
分类:其他好文   时间:2015-06-22 20:45:58    阅读次数:136
Effective C++ 条款9
绝不在构造和析构过程中调用virtual函数本节有个核心的知识点就是在构造函数和析构函数中,virtual函数失去多态性。 试想一下,假设此时在构造函数和析构函数中,virtual函数没有失去多态性,会出现什么问题。我们知道构造次序吧,先构造base类部分,再构造derived部分。 那么在base类构造过程中,derived的参数都没有被初始化。virtual函数一旦具...
分类:编程语言   时间:2015-06-22 13:44:44    阅读次数:155
Effective C++条款7
为多态基类声明virtual析构函数本节重点大家只要明白为什么要声明析构函数为virtual函数,即声明virtual析构函数的意义。我们知道,析构函数的作用就是实现多态polymorphic。那么如果我们动态创建一个derived派生类,由基类指针接受该派生类地址。那么我们如何释放这个派生类的内存? 如下代码:class A { //........... };class B:public A...
分类:编程语言   时间:2015-06-22 11:11:57    阅读次数:123
Effective C++ 条款8
别让异常逃离析构函数为什么别让异常逃离析构函数,异常逃离析构函数会引发哪些问题?很明显,异常会带来不明确的行为。 如下代码: 当容器销毁时会调用析构函数,这时如果析构函数抛出异常,容器中剩余的元素还是应该被销毁,否则可能会有内存泄露。这时如果继续销毁其他元素,又出现异常的话,会同时存在两个异常。两个异常同时存在会导致不明确的行为。使用标准库的其他容器或TR1的任何容器或者array,也会遇到类似...
分类:编程语言   时间:2015-06-22 11:09:29    阅读次数:232
从大二开始学C++到现在的一些感悟
Since I choose this road, I will not regret it. --Mereyct端午过后的第二天,闲着没事,更新一下博客。写这个博客的原因是,看到了群里有人问调用构造函数时能成功,调用析构函数却失败了。他在群里问大家问题,...
分类:编程语言   时间:2015-06-21 14:22:08    阅读次数:143
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!