任何不会修改数据成员的函数都应该声明为const
类型。
关于const函数,有以下几点规则:
- const对象只能访问const成员函数,而非const对象可以访问任意的成员函数,包括const成员函数;
- const对象的成员是不可修改的,而const对象通过指针维护的对象却是可以修改的;
- const成员函数不可以修改对象的数据,不管对象是否具有const性质。它在编译时,以是否修改成员数据为依据,进行检查;
- 加上mutable修饰符的数据成员,对于任何情况下通过任何手段都可修改,自然此时的const成员函数是可以修改它的。