use const whenever possible
关于const的使用,之前的文章里也做过相似的介绍,但《effective C++》里还是做了一些规则推荐,那就来学习一下。
函数声明
讲道理,之前对这种用法并不熟悉,但书上做了很详细的介绍。令函数返回一个常量值在某些情况下是非常有用的。举个例子,考虑有理数:
1 | class Rational {}; |
这样一个重载函数返回的是一个常量值,倘若不加上const关键字,就有可能发生这种情况:
1 | Rational a, b, c; |
const成员函数
- 这里需要注意的是如果两个成员函数只是不同,它们是可以被重载的;
- 由于这个原因,重载的两个成员函数可能会出现代码重复的情况;
- 因此我们可以这样使用:
1 | class TextBlock{ |
- 通过在non-const
operator[]经过两次转换,即可以减少代码量,也可以返回non-const值;
- non-const转换成const是安全转换;
建议
- 将某些东西声明为const可以帮助编译器检查出错误的用法;
- 当const和non-const有着类似的实现时,可以让non-const调用const来避免代码重复;