mutable表示易变的,跟const是反义词。
mutable修饰的变量可以在const函数里修改。
例子:
class LearnMutable: public CommonTestor
{
public:
LearnMutable() = default;
void func() const
{
mVal = 11; //OK
//mVal2 = 22; //编译报错,const函数无法修改非静态成员变量
cout << "mVal: " << mVal << endl;
}
void RunTest() override {
func();
}
private:
mutable int mVal{
10};
int mVal2{
20};
};
输出:
11