0. 可变数据成员
在了解了const之后,必然会有小伙伴问:有没有办法既定义一个const类对象,又可以修改类中的某些变量,比如计数该函数被调用多少次?
当然可以,C++什么都为你想到了。
答案就是关键字mutable。
使用mutable修饰的成员数据,称作可变数据成员(mutable data member)。
1. mutable的使用
看个例子就懂了:
class MyClass {
private:
mutable size_t access_ctr;
public:
void some_mem_func() const {
++access_ctr;
}
};
虽然some_mem_func
被声明为const,但是可以修改本类中的mutable成员数据access_ctr
。
2. 总结
mutable时刻可已修改。
除非必要,否则不要使用。