您的位置:首页 > 编程语言 > C语言/C++

Mutable关键字

2016-02-23 20:32 393 查看
Mutable

(1)mutable的意思是“可变的,易变的”,跟C++中的const是反义词。

(2)在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中

#include

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

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的作用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cppcoding mutable