在c++中const成员函数是无法修改成员变量的值。在c++11中出现了mutable关键字,表示的变量的值是可修改的,易变的。即可以在const成员函数中修改该变量的值,而不会导致编译失败。
#include <iostream>
using namespace std;
class A
{
public:
A(int a):m_a(a) {}
int add(int b) const { return m_a = m_a + b; }//const成员函数
//int m_a; const成员函数是不能改变一个成员变量的值
mutable int m_a; //使用了mutable,表示在const成员函数中,该值是可以被改变的
};
int main()
{
A a(10);
a.add(10);
}