Mutable
(1)mutable的意思是“可变的,易变的”,跟C++中的const是反义词。
(2)在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中
实例说明:
复制代码
#include <iostream>using namespace std;class TestMutable
{ public: TestMutable(){i=0;} int Output() const { return i++; //error C2166: l-value specifies const object }private: int i;};int main()
{ TestMutable testMutable; cout<<testMutable.Output()<<endl; return 0;}复制代码显然i++在const修饰的函数里是编译通不过的。复制代码
#include <iostream>using namespace std;class TestMutable
{ public: TestMutable(){i=0;} int Output() const { return i++; }private: mutable int i;};int main()
{ TestMutable testMutable; cout<<testMutable.Output()<<endl; return 0;}复制代码在 int i 前面加上 mutable上面就能编译通过了,马上可以看出关键字mutable的作用了。