CPlusPlus之mutable关键字

在 C++ 中,mutable 是为了突破 const 的限制而设置的。被 mutable 修饰的变量,将永远处于可变的状态,即使在一个 const 函数中,甚至结构体变量或者类对象为 const,其 mutable 成员也可以被修改。

mutable的作用有两点:

  1. 保持常量对象中大部分数据成员仍然是“只读”的情况下,实现对个别数据成员的修改;
  2. 使类的const函数可以修改对象的mutable数据成员。

使用mutable的注意事项:

  1. mutable只能作用于类的非静态和非常量数据成员。
  2. 在一个类中,应尽量或者不用mutable,大量使用mutable表示程序设计存在缺陷。

参考链接

  1. c++关键字mutable作用,by 苍老流年.
  2. C++中mutable关键字存在的必要性是什么?,by zhihu.