mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。
在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。
我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。
完整代码如下:
#include <iostream>
using namespace std;
class myclass
{
public:
int x;
int y;
mutable int z;//被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。
public:
void set(int a, int b) const//为了防止在函数中调用其他成员函数修改任何成员变量,所以参数也被const修饰。
{
//this->x = a;
//this->y = b;
this->z = a;
}
};
void main()
{
cin.get();
}