C++中,实现与const相反作用的关键字是mutable,被mutable修饰的变量处于永远可变状态,即使是在const函数中。
下面通过一个简单的例子说明
Class A {
public:
void output() const;
private:
int info;
}
void A::output() {
cout << info << endl;
}
A类中有成员变量info,成员函数output,output是一个const函数,它的功能是输出info,由于output是const函数,所以在函数体中不能改变成员变量。
如果现在我们想要统计output的调用次数,那么mutable就派上用场了,只要在类中将统计次数的变量修饰为mutable即可。
Class A {
public:
void output() const;
private:
int info;
mutable int times = 0;
}
void A::output() const {
times++;
cout << "info->" << info << endl
<< "times->" << times << endl;
}
这样times就突破const函数的限制,能够被修改。
C++中mutable关键字的应用
525

被折叠的 条评论
为什么被折叠?



