在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的值。