Use const whenever possible.
STL迭代器
STL迭代器是根据指针塑模出来的,所以迭代器的作用就像个T*指针。声明迭代器为const就像声明指针为const一样,表示这个迭代器不能指向不同的东西,但它所指的东西的值是可以改变的。
如果你希望迭代器所指的东西不可被改动,你需要的是const_iterator。
函数声明
const最具威力的用法是面对函数声明时的应用。在一个函数声明式内,const可以和函数返回值、各参数、函数自身(如果是成员函数)产生关联。
有理数的operator*的声明式:
class Rational {
...
const Rational operator* (const Rational& lhs, const Rational& rhs);
...
}
Rational a, b, c;
if (a * b = c) ... // 在a * b的结果上调用operator=
将operator*的返回值声明为const可以预防上面这个的意外错误。
const成员函数
将const实施于成员函数的目的,是为了确认该成员函数只可作用于const对象身上。
一个C++的重要特性:两个成员函数如果只是常量性不同,可以被重载。
未完待续