C++高效编程守则视状况而变化,取决于你是用C++的哪一部分。(废话)
C++包含四个主要的次语言:
- 对于单纯常量,最好以const对象或enums替换**#defines**。
- 对于形似函数的宏(macros),最好改用inline函数替换**#defines**。
做这些工作的初衷在于,尽量减少预处理器的工作,即使这会增加编译器的工作,这样会方便你的调试,减少出错
- 将某些东西声明为const可帮助编译器侦测出错误用法。const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体。
- 编译器强制实施bitwise constness,但你编写程序时应该使用conceptual constness。
- 如果const成员函数和non-const成员函数实质等价,令non-const版本调用const版本可避免代码重复。
- 为内置型对象进行手工初始化,因为C++不保证初始化它们。
- 构造函数使用成员初值列,且次序匹配。
- 使用local static对象替换non-local static对象。
很好理解,用初值列,而不是赋值;将外部对象搬入自己的专属函数,与单例模式的思路相同,确保概之被初始化。