【1】析构函数的作用 析构函数的作用并不是删除对象,而是在撤销对象 占用的内存之前完成一些清理工作,使这部分内存 可以被程序分配给新对象使用。程序设计者事先设 计好析构函数,以完成所需的功能,只要对象的生 命期结束,程序就自动执行析构函数来完成这些工 作。 析构函数不返回任何值,没有函...
分类:
编程语言 时间:
2014-08-04 10:26:46
阅读次数:
224
http://blog.csdn.net/estelle_belle/article/details/16944597不懂虚函数有什么用,不知道除了构造函数,析构函数外还有拷贝函数,还有深浅拷贝之分。每天下班后我没有直接回家,而是留在了单位telnet到SUNOS上,开始了我学习unix的计划。我觉...
分类:
其他好文 时间:
2014-08-03 22:58:36
阅读次数:
237
1.new、delete、malloc、free关系
delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之...
分类:
编程语言 时间:
2014-08-03 18:11:25
阅读次数:
407
使用virtual析构函数,避免对象局部销毁。...
分类:
编程语言 时间:
2014-08-03 15:19:15
阅读次数:
179
Ogr的销毁DestroyFeature方法:1 void OGRFeature::DestroyFeature( OGRFeature *poFeature )2 {3 delete poFeature;4 }析构函数中删除了几何对象和空间参考定义,ogrfeature.cpp文件中查看:...
分类:
其他好文 时间:
2014-07-31 13:13:46
阅读次数:
389
is-a关系 类包含关系
构造函数 复制构造函数 重载赋值操作符 析构函数
动态内存空间分配和释放 new delete操作
static 数据成员
友元函数 重载输入>>和输出<<操作符...
分类:
编程语言 时间:
2014-07-31 00:01:45
阅读次数:
439
引入
在进行下一步的学习之前,我们需要厘清几个概念.
RAII
首先介绍一个编程习语,”RAII”(ResourceAcquisition Is Initialization,资源获取即为初始化),他描述了利用构造函数\析构函数,并在函数返回时自动析构的机制.简言之,RAII意为构造函数获取一种资源;打开一个文件,一个网络连接,或仅仅是从某I/O流中复制一些标志.这种获取是对象初始化的一部分...
分类:
编程语言 时间:
2014-07-30 17:45:34
阅读次数:
346
C++中智能指针可以防止出现野指针、内存泄露等情况,智能指针的类中包含4个函数:构造函数、拷贝构造函数、重载复制操作符、析构函数。构造函数需要对引用计数和指针进行初始化,引用计数初始化为1,拷贝构造函数完成对象之间的拷贝,要注意引用计数的变化和判断两个指针是否指向相同的内存。重载复制操作符,需要判断的情况是左值代表的指针如果引用计数减为0,要释放相应的内存,避免发生内存泄露。析构函数中先判断引用计...
分类:
其他好文 时间:
2014-07-30 01:02:42
阅读次数:
199
区别: ????1. new/delete是C++的操作符,malloc/free是C/C++标准库函数。 ? ? 2. new分为两步的:第一步是申请内存,第二步则是调用构造函数初始化对象。同样,在调用delete的时候,需要先调用析构函数,然...
分类:
其他好文 时间:
2014-07-29 18:28:42
阅读次数:
200
众所周知,c++中的每个类都会有一个析构函数,当这个类的对象被销毁的时候,对象会自动调用析构函数。那么什么情况下对象的析构函数会被自动调用呢?其实这个问题也可以换种方式问,什么情况下对象会被自动销毁。...
分类:
编程语言 时间:
2014-07-29 12:53:48
阅读次数:
277