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;
}