effective c++ 条款3 尽可能使用const
将某些东西声明为const可以帮助编译器侦测出错误用法,const可以被施加在任何作用域的对象,函数参数,函数返回类型。
const 出现在星号左边,被指物是常量。
const 出现在星号右边,指针自身是常量。
char *p = greeting; //non-const pointer, non-const data
const char* p = greeting; //non-const pointer, const data
char* const p = greeting; //const pointer,non-const data
const char* const p = greeting ;//const pointer,const data
std:vector<int> vec;
const std:vector<int>::iterator iter = vec.begin;
*iter = 10; //没问题 改变iter指向的事物
++iter; //错误,iter 本身是个const
std:vector<int>::const_iterator citer = vec.begin();
*cIter = 10; //错误 citer是个const
++cIter; //没问题,改变citer