在 C++ 中,mutable 是为了突破 const 的限制而设置的。被 mutable 修饰的变量,将永远处于可变的状态,即使在一个 const 函数中,甚至结构体变量或者类对象为 const,其 mutable 成员也可以被修改。
mutable的作用有两点:
- 保持常量对象中大部分数据成员仍然是“只读”的情况下,实现对个别数据成员的修改;
- 使类的const函数可以修改对象的mutable数据成员。
使用mutable的注意事项:
- mutable只能作用于类的非静态和非常量数据成员。
- 在一个类中,应尽量或者不用mutable,大量使用mutable表示程序设计存在缺陷。
参考链接
- c++关键字mutable作用,by 苍老流年.
- C++中mutable关键字存在的必要性是什么?,by zhihu.