在C++中,如果一个类的成员函数不会改变这个类的成员变量的值,我们通常将这样的函数声明称const成员函数。例如,
1
classDummy
2 {
3 protected :
4 // 成员变量声明
5 public :
6 ...
7 void foo() const ; // 这个函数不会改变成员变量的值,因此声明称const函数
8 ...
9 };
2 {
3 protected :
4 // 成员变量声明
5 public :
6 ...
7 void foo() const ; // 这个函数不会改变成员变量的值,因此声明称const函数
8 ...
9 };
在编写和使用const成员函数的时候需要知道几点规则:
a.const对象只能访问const成员函数,不能访问非const函数。
b. const对象的成员是不可修改的,然而const对象通过非const指针维护时,就变成可以修改的了。
c.const成员函数不可以修改对象的数据,不管对象是否具有const性质。它在编译时,以是否修改成员数据为依据,进行检查。
e.然而加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的。