C++中的关键字mutable翻译出来是:易变的。其可以看做是const的反义词,作用也是反向于const的。当用const修饰类对象时(常对象),代表着其值是不能修改的。但我们也许会在某些时刻需要一种可以在常对象内可修改的变量。这时我们就需要了关键字mutable。
型如:
mutable <变量类型> <变量名>
当使用mutable修饰成员变量以后,在常对象内可以修改其值。
示例代码:
#include <iostream>
using namespace std;
class Person
{
private:
mutable string name;
int age;
public:
Person(const string x,const int y):name(x),age(y){}
void show()const;
~Person(){}
};
void Person::show() const
{
cout<<name<<" "<<age<<endl;
name="我被修改了";
cout<<name<<" "<<age<<endl;
}
int main()
{
const Person a=Person("我是初始值",25);
a.show();
}
结果: