在C++中,mutable
關(guān)鍵字被用于修飾類的成員變量。mutable
關(guān)鍵字的作用是允許該成員變量在const
成員函數(shù)中被修改,即使在該函數(shù)中不能修改其他成員變量。
通常情況下,const
成員函數(shù)不允許修改類的成員變量,因?yàn)?code>const成員函數(shù)被視為不會(huì)對(duì)對(duì)象的狀態(tài)產(chǎn)生任何影響。然而,有時(shí)候有些成員變量可能需要在const
成員函數(shù)中被修改,例如在緩存值的情況下。這時(shí)候可以使用mutable
關(guān)鍵字來修飾這些成員變量,以允許在const
成員函數(shù)中修改它們。
下面是一個(gè)示例代碼:
class Example {
public:
int getValue() const {
// 在const成員函數(shù)中修改mutable變量
counter++;
return value;
}
private:
int value;
mutable int counter; // 使用mutable關(guān)鍵字修飾
};
在上面的代碼中,counter
被標(biāo)記為mutable
,因此它可以在const
成員函數(shù)getValue()
中被修改。而value
沒有被標(biāo)記為mutable
,因此在const
成員函數(shù)中不能修改它。