c++Mutable

    xiaoxiao2022-06-28  29

    (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的作用了。

    原文链接:http://www.cnblogs.com/chenyuming507950417/archive/2012/01/05/2313647.html

    转载请注明原文地址: https://ju.6miu.com/read-1124230.html

    最新回复(0)