C++ Const 成员函数
对于代码:
const Exam tobyEx = Exam(“I am Toby”);
tobyEx.show();
编译器将拒绝第二行。为什么呢?
因为show()的代码无法保证调用对象不被修改 —— 调用对象和 const 一样,不应被修改。C++ 采用将 const 关键字放在函数的括号后面的方法,来保证函数不会修改调用对象。即 show() 函数应用如下形式声明:
void show() const;
同样,函数的定义也应添加 const:
void Exam::show() const{
…
}
以这种方式声明和定义的类函数被称为 const 成员函数。就像应尽可能将 const 引用和指针用作函数形参一样,只要类方法不修改调用对象,就应将其声明为 const。我们应从现在开始就遵守这一原则。