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++语言