在C++中,mutable
关键字用于修饰类的成员变量。它的作用是允许在常量成员函数中修改该成员变量的值。
默认情况下,常量成员函数(声明为const
的成员函数)不能修改类的任何成员变量,因为它们被视为只读操作。但有时候,我们可能希望在常量成员函数中修改某个成员变量的值,这时就可以使用mutable
关键字。
下面是一个使用mutable
关键字的示例:
class Example {
private:
mutable int counter; // 可变的成员变量
public:
Example() : counter(0) {}
void increment() const {
counter++; // 在常量成员函数中修改成员变量的值
}
int getCounter() const {
return counter;
}
};
在上面的示例中,counter
被声明为mutable
,因此在常量成员函数increment()
中可以修改它的值。而getCounter()
也是一个常量成员函数,它只返回counter
的值而不会修改它。
使用mutable
关键字需要谨慎,因为它打破了常量成员函数的只读性。只有在确实需要在常量成员函数中修改特定的成员变量时才应该使用mutable
。