c++ Mutable

来源:互联网 发布:易语言盗号源码2016 编辑:程序博客网 时间:2024/06/06 03:33

(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

0 0
原创粉丝点击