mutable 关键字用于允许类的某个成员变量在 const 成员函数中被修改。通常,const 成员函数不能改变对象的任何成员变量,但将成员变量声明为 mutable 可以例外
class Hero
{
public:Hero():m_Hp(0), m_getHpCounter(0){}int getHp() const {m_getHpCounter++;return m_getHpCounter;}void printCounter() const {cout << "Counter:" << m_getHpCounter << endl;}private:int m_Hp;mutable int m_getHpCounter;
};int main()
{Hero h;h.getHp(), h.getHp(), h.getHp(), h.getHp(), h.getHp(), h.getHp();h.printCounter();return 0;
}