C++ Const 成員函數(shù)
對于代碼:
const Exam tobyEx = Exam(“I am Toby”);
tobyEx.show();
編譯器將拒絕第二行滩报。為什么呢扇苞?
因為show()的代碼無法保證調(diào)用對象不被修改 —— 調(diào)用對象和 const 一樣,不應(yīng)被修改烟号。C++ 采用將 const 關(guān)鍵字放在函數(shù)的括號后面的方法坯认,來保證函數(shù)不會修改調(diào)用對象翻擒。即 show() 函數(shù)應(yīng)用如下形式聲明:
void show() const;
同樣,函數(shù)的定義也應(yīng)添加 const:
void Exam::show() const{
…
}
以這種方式聲明和定義的類函數(shù)被稱為 const 成員函數(shù)牛哺。就像應(yīng)盡可能將 const 引用和指針用作函數(shù)形參一樣韭寸,只要類方法不修改調(diào)用對象,就應(yīng)將其聲明為 const荆隘。我們應(yīng)從現(xiàn)在開始就遵守這一原則。