08 2014 档案
14——小心copying行为
摘要:资源的copying行为决定对象的copying行为。抑制copying行为,使用引用计数。
阅读全文
13——以对象管理资源
摘要:RAII(resource acquisition is initialization):资源获取时便是初始化时机。不论控制流如何离开执行的区域块,其析构函数被调用,资源被释放。为防止内存泄露使用auto_ptr或shared_ptr();auto_ptr sp(new class)+shared_...
阅读全文
12——复制时勿忘其每一个成分
摘要:copying函数应该确保复制对象内的所有成员变量及所有的base成分。不要尝试以一个copying函数实现另一个copying函数。
阅读全文
11——在operator=中处理自我赋值
摘要:在operator=函数中加一个测试:if(&rhs==this)copy and swap
阅读全文
10——operator=返回reference to *this
摘要:注意operator=返回一个引用,便于连锁赋值
阅读全文
09——绝不在构造和析构函数中调用virtual函数
摘要:在base class构造期间,virtual函数不是virtual函数。构造函数、析构函数中不要调用virtual函数。
阅读全文
08——别让常逃离析构函数
摘要:关于C++中抛出异常的问题:析构函数应该从不抛出异常如果需要处理异常,在普通函数里面处理
阅读全文
07——为多态基类声明为virtual析构函数
摘要:当基类确定被继承的时候,析构函数声明为virtual是必须的当返回的派生类的指针或引用的时候,调用析构函数容易发生内存泄漏当基类作为抽象类使用,声明pure virtual析构函数析构函数的顺序————派生类的析构函数先被调用(先析构基类成员)构造函数的顺序————派生类的构造函数先被调用(先构造基...
阅读全文
06——明确拒绝不想让编译器合成的函数
摘要:声明为private,并且不实现;声明一个1中的基类,去继承它boost库中含有noncopyable
阅读全文
05——C++自己合成的函数
摘要:C++编译器自己合成的构造函数:默认构造函数copy构造函数copy assigment操作符析构函数(编译器产生的析构时non-virtual)copy assignment(当含有const以及reference时不能自动合成)
阅读全文
04——确定对象使用前被初始化
摘要:内置类型手动初始化类类型-构造函数(确保构造函数将对象的每个成员都初始化)类构造函数初始化列表与函数体内赋值的区别:效率更高函数内的赋值语句执行时先执行成员的默认构造函数,再执行copy assignment初始化列表直接执行一次 copy构造函数含有const成员、reference成员时需使用初...
阅读全文
浙公网安备 33010602011771号