關鍵字mutable是C++中一個不常用的關鍵字,他只能用于類的非靜態和非常量數據成員
我們知道一個對象的狀態由該對象的非靜態數據成員決定,所以隨著數據成員的改變,
對像的狀態也會隨之發生變化!
如果一個類的成員函數被聲明為const類型,表示該函數不會改變對象的狀態,也就是
該函數不會修改類的非靜態數據成員.但是有些時候需要在該類函數中對類的數據成員
進行賦值.這個時候就需要用到mutable關鍵字了
例如:






























編譯上面的代碼會出現 error C2166: l-value specifies const object的錯誤
說明在const類型的函數中改變了類的非靜態數據成員.
這個時候需要使用mutable來修飾一下要在const成員函數中改變的非靜態數據成員
m_nAccess,代碼如下:






























這樣再重新編譯的時候就不會出現錯誤了!