(1) 条款01: 视C++为一个联邦语言。
(2) 条款02:尽量使用 enum, const inline 代替 #define
对于单纯常量,最好以const对象或者enums替换#defines
对于形似函数的宏,最好改用inline函数替换#define.
(3) 条款03:尽量使用const
将某些东西声明为const可帮助编译器侦测出错误用法。 const可被施加于任何作用域内的对象,函数参数,函数返回类型,成员函数本体。
当 const 和 non-const 成员函数有着实质等价的实现时, 令 non-const 版本调用 const 版本可避免代码重复。
const_cast<char &>(
static_cast<const TextBlock &>(*this))[position];
(4) 条款04:确定对象使用前已被初始化。
为内置类型对象进行手工初始化, 因为 C++不保证初始化她们。
构造函数最好使用 成员初值列表,而不要在构造函数本体内使用赋值操作。 初值列表列出的成员变量, 其排列次序应该和 它们在class中
声明的次序相同。
为免除 “跨编译单元 之 初始化次序” 问题,请以local static 对象替换换 non-local static 对象。