第15条 积极使用const
const是我们的朋友:不变的值更易于理解、跟踪和分析,所以应该尽可能地使用
常量代替变量,定义值的时候,应该把const作为默认的选项:常量很安全,在编译
时会对其进行检查,而且它与c++的类型系统已浑然一体。不要强制转换const的
类型,除非要调用常量不正确的函数。
用mutable成员实现逻辑上的不变。当类的const成员函数需要合法地修改成员变量时
(即变量不影响对象的可观察状态时,比如缓存数据),声明该成员变量为mutable的。
请注意,如果用Pimpl惯用法(见第43条)隐藏了所有私有成员,就无需对缓存信息或者
指向它的未改变的指针声明mutable了。
示例:
在函数声明中,要避免将通过值传递的函数参数声明为const。一下两个声明是完全等效的:
void Fun(int x);
void Fun(const int x); //重新声明同一函数:顶级const将被忽略
第二个声明中, const是多余的。
阅读(842) | 评论(0) | 转发(0) |