const char *p = "hello";被指物是常量,指针自身不是常量。
char * const p = "hello";被指物不是常量,指针本身是常量。
const char * const p = "hello";被指物和指针本身都是常量。
vector<int> vec;
const vector<int>::iterator iter = vec.begin(); // iter是const,不能改变。所指物*iter可以改变。
vector<int>::const_iterator cIter = vec.begin();// cIter可以改变,但是所指物*cIter是const,不能改变。
令函数返回一个常量值,可以防止函数作为赋值表达式的左值这种没意义的赋值操作。
将const作用于成员函数,使class接口容易理解,可以知道哪个函数可以改动对象内容而哪个函数不行;使“操作const对象”成为可能。
两个成员函数如果只是常量性不同,可以被重载。
浙公网安备 33010602011771号