P5: 除非你有一个足够好的理由允许构造函数被隐式调用,否则应该把它声明为explicit.
Why: 确定行为 好于 不确定的行为.
P17: 尽量不用#define. 用const代替宏定义的变量;用inline函数替代宏定义的函数。
Why: 1.宏定义的变量难以debug;2.宏定义的函数……
P18: 尽量使用const,
1. const int func();这样的返回类型也定义为const型
防止:func() = 1 这样的。
2. 当const函数想修改成员变量时,可以定义mutalbe类型的成员变量;
3. 当const返回类型的函数,想被修改时,可以定义了一个等价的non_const函数如下(P24):