c++症結字mutable深刻解析。本站提示廣大學習愛好者:(c++症結字mutable深刻解析)文章只能為提供參考,不一定能成為您想要的結果。以下是c++症結字mutable深刻解析正文
1、關於mutable症結字
先說用法,mutable症結字只能潤飾非靜態和異常量成員變量,應用mutable潤飾的成員變量在const函數中的值是可以修正的。
好比說上面的代碼:
class Demo
{
public :
Demo() {}
~Demo() {}
public :
bool getFlag()const
{
m_nAccess++;
return m_bFlag;
}
private :
int m_nAccess;
bool m_bFlag;
};
int main()
{
return 0 ;
}
編譯的時刻會報錯,由於const成員函數修正了成員變量,然則假如聲明m_nAccess的時刻加上症結字mutable便可以了。
PS:一個對象的狀況由該對象的非靜態數據 成員決議,所以跟著數據成員的轉變, 對像的狀況也會隨之產生變更! 假如一個類的成員函數被聲明為const類型,表現該函數不會轉變對象的狀況,也就是該函數不會修正類的非靜態數據成員.然則有些時刻須要在該類函數中對類的數據成員停止賦值.這個時刻就須要用到mutable症結字了。