——
www.libcl.cn
這篇文章主要記錄我對"類成員函式後帶const"的理解。
例子:class consttemp
void seta(int na);
void printa()const;
};為什麼在成員函式printa()後面加多乙個const?
「這是把整個函式修飾為const,即『函式體內不能對成員資料做任何改動『;且如果宣告這個類的乙個const例項,這時則只能呼叫這個類中有const修飾的函式。」
我的理解是:成員函式void printa()const;不能對函式體內成員變數int a作任何修改。
貼上我以下的測試**:
#include
using
namespace std;
class consttemp
void seta(int na);
void printa()const;
};void consttemp::seta(int na)
void consttemp::printa() const
int main()
該例子主要呈現的結果是:「且如果宣告這個類的乙個const例項,這時則只能呼叫這個類中有const修飾的函式。」
成員函式後的const
const的其他情況不在贅述,我說的這個是只能用於修飾成員函式,用處是向編譯器宣告使用者不會更改傳入變數,要注意的是一種情況,就是當類內有兩個重名的函式,比如 void t print const int const void t print const int 這兩個成員函式是不同的,因為第乙個函...
const與類成員函式
既然類的例項是個物件,那麼它也應該可以被 const 修飾。按照 const 的定義,const sampleclass foo const 與 sampleclass foo 並不是同樣的東西。簡單來說,foo const 不能被改變,顯然也就是它的字段不能被改變。那麼普通的物件 foo能做的事情...
C 中成員函式後加const
注 以下內容來自網路,感謝的整理 非靜態成員函式後面加const 加到非成員函式或靜態成員後面會產生編譯錯誤 表示成員函式隱含傳入的this指標為 const指標,決定了在該成員函式中,任意修改它所在的類的成員的操作都是不允許的 因為隱含了對this指標的const引用 唯一的例外是對於 mutab...