在C++中,mutable关键字被用于修饰类的成员变量,表示这些变量可以在const成员函数中被修改。通常情况下,const成员函数是不能修改类的成员变量的,但是如果某个成员变量被声明为mutable,那么在const成员函数中可以通过该变量进行修改。
下面是一个使用mutable关键字的简单示例:
#include <iostream>
class Example {
public:
int getValue() const {
// 在const成员函数中修改mutable变量
m_counter++;
return m_counter;
}
private:
mutable int m_counter = 0;
};
int main() {
Example ex;
std::cout << ex.getValue() << std::endl; // 输出1
std::cout << ex.getValue() << std::endl; // 输出2
return 0;
}
在上面的示例中,类Example中的m_counter成员变量被声明为mutable,因此在getValue() const函数中可以对其进行修改。通过调用getValue()函数,每次输出的结果都会递增。这样就实现了在const成员函数中修改类的成员变量的功能。