More Effective C++
More Effective C++
基础议题
1.
仔细区别pointers和references
2. 最好使用C++转型操作符
3. 绝对不要以多态方式处理数组
4. 非必要不提供default
constructor
操作符
5.
对定制的类型转换函数保持警觉
6.
区别increment和decrement操作符的前置和后置形式
7.
千万不要重载&&和||和,操作符
8.
了解何种不同意义的new和delete
异常
9. 利用destructors避免泄漏资源
10.
在constructor内阻止资源泄漏
11. 禁止异常流出析构函数外
12.
了解抛出一个异常和传递一个参数或调用一个虚函数之间的差异
13. 以by reference方式捕捉异常
14. 明智运用 exception
specifications
15. 了解异常处理的成本
效率
16. 谨记80-20法则
17. 考虑使用lazy evaluation
18. 分期摊还预期的计算成本
19. 了解临时对象的来源
20. 协助完成返回值优化
21.
利用重载技术避免隐式类型转换
22.
考虑以操作符符合形式取代独身形式
23. 考虑使用其他程序库
24. 了解虚函数
多继承 虚基类 运行时类型检测的成本
技术
25.
将constructor和non-member functions虚化
26.
限制某个class所能产生的对象数量
27. 要求或禁止对象产生于堆之中
28. 智能指针
29. 引用计数
30. 替身类代理类
31.
让函数根据一个以上的对象类型来决定如何虚化
杂项讨论
32. 在未来时态下发展程序
33. 将非尾端类设计为抽象类
34.
如何在同一个程序中结合C++和C
35. 让自己习惯于标准C++语言