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();
}
結果: