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