在C++中,mutable關鍵字用于修飾類的成員變量,表示該變量可以在const成員函數中被修改。通常情況下,const成員函數是不能修改類的成員變量的,但如果某個成員變量被聲明為mutable,則在const成員函數中可以修改這個變量的值。
下面是一個示例代碼,演示了mutable關鍵字的使用方法:
class MyClass {
public:
MyClass(int value) : m_value(value) {}
int getValue() const {
m_counter++; // 在const成員函數中修改mutable變量
return m_value;
}
private:
int m_value;
mutable int m_counter = 0; // mutable變量
};
int main() {
const MyClass obj(10);
cout << obj.getValue() << endl; // 輸出:10
cout << obj.getValue() << endl; // 輸出:10
return 0;
}
在上面的代碼中,m_counter被聲明為mutable,在const成員函數getValue()中可以修改它的值。因此,obj.getValue()可以被多次調用,每次調用都會增加m_counter的值。