本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie
const 出现在*左边指const data,出现在*右边指const pointer
声明常量迭代器和所指物是常量的迭代器
将返回值声明为const,避免它被当作左值,成员函数声明为const,确认该成员函数可作用于const 对象
成员函数声明为const,确认该成员函数可作用于const 对象(const对象只能调用const 成员)
char greeting[] = “Hello”;
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的作用像个T *const
*iter = 10 //ok. 改变iter所指物
++iter; //error. iter是const
const std::vector<int>::const_iterator cIter = vec.begin(); //cIter的作用像个const T *
*cIter = 10 //error. *cIter是const
++cIter; //ok. 改变cIter
将返回值声明为const,避免它被当作左值,成员函数声明为const,确认该成员函数可作用于const 对象
class Rational {…};
const Rational::operator *(const Rational *lhs, const Rational *rhs) const
参数声明为const,避免它修改
成员函数声明为const,确认该成员函数可作用于const 对象(const对象只能调用const 成员)