在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
成员函数中不能修改它。