今天在看代码的时候遇到一个没见过的关键词-mutable。
首先,总而言之,mutable就是用来突破const的限制。
在一个类中,如果不希望它的成员函数修改相关属性,则设置const来修饰
例:
class Node
{
public:
int cnt=0;
void outPut() const;
};
void Node::outPut() const
{
cout<<cnt<<endl;
}
但是如果我们希望类中有的变量能不受这个限制,可以在被限制的成员函数中被改变,则可以使用mutable
例:
class Node
{
public:
int cnt=0;
mutable int outPutcnt=0;
void outPut() const;
};
void Node::outPut() const
{
cout<<"cnt="<<cnt<<endl;
cout<<"outPutcnt="<<++outPutcnt<<endl;
}