本文为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; //error. 改变cIter
将返回值声明为const,避免它被当作左值,成员函数声明为const,确认该成员函数可作用于const 对象
class Rational {…}; const Rational::operator *(const Rational *lhs, const Rational *rhs) const参数声明为const,避免它修改
成员函数声明为const,确认该成员函数可作用于const 对象(const对象只能调用const 成员)