限定符const
const修饰普通变量
const double a = 1;
const修饰指针变量
double const *pa = &a;
const修饰指针变量指向的变量
const double *pa = &a;
const修饰类成员属性
const修饰类成员函数,const成员函数内部不能调用非const修饰的成员函数,不过在不作修改的情况下可以调用非const的类成员属性
在C++中,只有被声明为const的成员函数才能被一个const类对象调用。
总结:
1)const成员函数可以访问非const对象的非const数据成员、const数据成员,也可以访问const对象内的所有数据成员;
2)非const成员函数可以访问非const对象的非const数据成员、const数据成员,但不可以访问const对象的任意数据成员;
3)作为一种良好的编程风格,在声明一个成员函数时,若该成员函数并不对数据成员进行修改操作,应尽可能将该成员函数声明为const 成员函数。
4)如果只有const成员函数,非const对象是可以调用const成员函数的。当const版本和非const版本的成员函数同时出现时,非const对象调用非const成员函数。