摘要: Technorati 标签: 析构函数,内存泄漏,三法则任何时候编译器都会合成析构函数,并且合成的析构函数总会运行。撤销容器(标准库容器和内置数组)是按逆序进行的。内存泄漏(Memory leak):删除指向动态分配内存的指针失败,因而无法将该块内存返还给自由存储区,这样的删除动态分配内存失败称为内存泄漏。只有当删除指向类对象的指针时才会运行该对象的析构函数。如果不删除指针,则对象一直存在,导致内存泄漏。三法则(rule of three):如果类需要析构函数,则也需要赋值操作符和复制构造函数。文章来源:http://liyuxia-life.spaces.live.com/Blog/cns! 阅读全文
posted @ 2009-03-08 21:25 liyuxia713 阅读(185) 评论(0) 推荐(0) 编辑
摘要: Technorati 标签: 类初始化列表,默认构造函数,复制构造函数初始化列表:通常使用初始化是为了提高效率,它直接调用与实参匹配的构造函数。【因为一般在构造函数体内的复制也经过初始化-->计算赋值(此时会调用复制构造函数)两个阶段】;特别的有些时候只能用初始化列表,即不能赋值的参数,如:const或引用类型的成员,没有默认构造函数的类类型成员。初始化列表中变量的初始化顺序是先声明的先初始化.class cl1{ private: const int ci; int &ri;}; //ci,ri只能在初始化列表中进行初始化。默认构造函数:全部形参是默认实参的构造函数也是默认构造 阅读全文
posted @ 2009-03-08 21:00 liyuxia713 阅读(154) 评论(0) 推荐(0) 编辑