- 从前面我们知道,在const成员函数内,我们不能对对象的数据(无论是公有的还是私有的)进行修改。但是我们又想去修改其中的一个数据。一种可行的方案是将该数据成员定义成可变数据成员(使用关键字mutable)看如下的例子:
- class Screen{
- public:
- private: mutable size_t access_ctr;
- };
void Screen::do_display(std::ostream & os) const
{
++access_ctr;//虽然外面是一个const成员函数,但是一位该数据时可变数据成员,所以在这里可以修改它。
os<<contents;
}