条款03:尽可能使用const 如果关键字 const出现在星号左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;如果出现在星号两边,表示被指物和指针两者都是常量。 将const实施于成员函数的目的,是为了确认该成员函数可作用于const对象身上。这一类成员函数之所以重要,基于两个理由。第一,它们使 class 接口比较容易被理解。这是因为,得知哪个函数可以改动对象内容而哪个函数不行,很是重要。第二,它们使“操作const对象”成为可能。 两个成员函数如果只是常量性(constness)不同,可以被重载。这实在是一个重要的C++特性。const T& getXXX() const;和T& getWriteableXXX(); 利用C++的一个与const相关的摆动场:mutable(可变的)。mutable释放掉non-static成员变量的bitwise constness约束。 利用const_cast将常量性转除,运用const成员函数实现出其non-const孪生兄弟。 - 将某些东西声明为 const可帮助编译器侦测出错误用法。const可被施加于任何作用域内的对象、函数参数、函数返回类型、成员函数本体。
- 编译器强制实施bitwise constness,但你编写程序时应该使用“概念上的常量性”(conceptual constness)。
- 当 const和non-const成员函数有着实质等价的实现时,令non-const版本调用const版本可避免代码重复。
|