c++本身不提供自动内存回收机制,所以每次我们有new一个对象或者数组,我们都是时时刻刻提醒自己要记得去delete new出来的对象,那样岂不是非常烦人?而且就算你记得在析构函数中delete new出来的对象,也同样会造成很多问题,比如一个class里面有个指针,初始化的时候new了一块内存,然后class 有个对象a,再通过class b=a复制一份a,这样其实两个对象分别有一个指针指向ne...
分类:
其他好文 时间:
2014-11-26 19:09:12
阅读次数:
132
一、静态构造函数一个类可以有静态构造函数,实现如下源代码。静态构造函数有以下特性:1)、静态构造函数不能有修饰符(润饰符)2)、静态构造函数不能有参数3)、不能被调用——在实例化类的时候,静态构造函数被主动调用4)、只能对类的静态成员进行初始化 public class QueueClass ...
http://blog.csdn.net/jia_xiaoxin/article/details/3348045当我们规定类只能在堆上分配内存时,就可以将析构函数声明为私有的。class alloc{public: alloc():private: ~alloc();};如果在栈上分配空间,类在离开...
分类:
其他好文 时间:
2014-11-26 10:47:39
阅读次数:
212
魔术方法都是以'__'开头的,所以平时定义方法时,不要以'__'开头。1__construct()构造函数:实例化对象时被调用,当__construct和以类名为函数名的构造函数同时存在时,__construct将被调用,另一个不被调用。2__destruct()析构函数:当删除一个对象或对象操作终...
分类:
Web程序 时间:
2014-11-24 19:09:21
阅读次数:
320
new,malloc,GlobalAlloc详解
相同点:都可用于申请动态内存和释放内存
不同点:
(1)操作对象有所不同。
malloc与free是C++/C
语言的标准库函数,new/delete
是C++的运算符。对于非内部数据类的对象而言,光用maloc/free
无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象消亡之前要自动执行析构函数。由于mallo...
分类:
其他好文 时间:
2014-11-20 20:25:03
阅读次数:
296
老生常谈的问题了,MSDN也有非常详细的说明但看起来不是很系统。也曾经做过分析,但没有总结下来又忘了,这次整理一下MSDN和网上搜集的一些资料,以备不时只需。下面是MSDN对这两个函数的建议使用方法 1 MSDN建议 2 // Design pattern for a base class....
分类:
其他好文 时间:
2014-11-19 15:33:45
阅读次数:
269
正在实现一个线程池的pthread包装器,突然发现有人在讨论关于http://blog.csdn.net/Solstice/article/details/5238671 是一篇比较老的文章,考虑了下 我在实现线程池包装器的时候会不会出现文章说的析构函数销毁mutex的问题最后得出一个结论 在线程池...
分类:
编程语言 时间:
2014-11-17 15:41:43
阅读次数:
130
php中定义类与java中类似,但是php中的构造函数不同,在PHP中构造函数用__construct() (两个下划线),这样可以保证在改变类名的时候不用再去改变构造函数名。它还有一个析构函数__destruct(),用它来销毁实例,释放资源。一旦你定义了一个类,你可以用new来建立一个这个类的实...
分类:
Web程序 时间:
2014-11-17 12:16:59
阅读次数:
976
在虚表中,派生类虚函数指针会替代基类的对应的虚函数指针的位置//析构函数:派生类析构函数首先调用派生类析构,然后调用父类析构函数;与构造函数顺序相反多态还有个关键之处就是一切用指向基类的指针或引用来操作对象,所以要实现子类接口的重写,必须使用抽象类。1)虚函数按照其声明顺序放于表中。2)父类的虚函数...
分类:
其他好文 时间:
2014-11-16 21:25:41
阅读次数:
188
最近在学习QT,自己仿写了一个简单的QT绘图程序,但是在退出时总是报错,断言错误:报错主要问题在_BLOCK_TYPE_IS_VALID(pHead->nBlockUse),是在关闭窗口时报的错;先前考虑是析构函数有问题,重写并且排查相关变量并未发现问题。根据报错问题又推测栈调用出现内存溢出,寻找程...
分类:
其他好文 时间:
2014-11-15 01:23:13
阅读次数:
169