在C++中,使用mutable關鍵字可以實現常量成員函數的修改能力。當一個成員函數被聲明為const時,表示該函數不能修改類的任何成員變量。但是如果某個成員變量被聲明為mutable,則即使在const成員函數中也可以修改這個成員變量的值。
例如:
class Example {
public:
void setValue(int value) const {
m_value = value; // Error: m_value is not mutable
}
int getValue() const {
return m_value;
}
private:
mutable int m_value;
};
在上面的代碼中,m_value被聲明為mutable,所以即使在const成員函數中也可以修改它的值。這樣就可以在const成員函數中修改某些臨時狀態或者緩存值,而不會影響類的其他成員變量。