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