Use const whenever possible,这是Effective C++第三条。此外,再记录几点:
- 在定义pure virtual function时,要慎用const,因为尚不清楚子类的实现;
- const有时可以写在类型前面,也可以写在后面,按《C++ Template》的说法,建议写在后面,以一致表达普通类型和指针类型,特别是模板类的话;
- 在const成员函数中修改状态,可以将非const成员变量设为mutable。还有一种方法就是((T*)this)->member,如果只是在某个const成员函数中可以这么用;
- const_cast同样用于volatile,当然也可以采用template traits来实现类型函数;
- 按照《The C++ Standard Library- A Tutorial and Reference》中的说法, const auto_ptr可以终止智能指针ownship的转移,不过VC 6.0的auto_ptr不支持此特性;
- 由于已经是排序的,map和multimap的key都是const的。