mutable的使用

简介: mutable的使用

当类的某个函数被声明为const,但是后期扩展又需要修改类的某个成员变量的时候。如果直接修改会报错:“表达式必须是可修改的左值”。此时可以在类成员变量前面添加mutable修饰,这样即使函数是const,但仍可以修改这个类成员变量。例子如下:

直接使用会报错:

class Test
{
public:
  void setData(const int data) const;
private:
  int _data;
};
void Test::setData(const int data) const
{
  _data = data;
}

修改后正常:

class Test
{
public:
  void setData(const int data) const;
private:
  mutable int _data;
};
void Test::setData(const int data) const
{
  _data = data;
}
相关文章
|
3月前
|
存储 JavaScript 前端开发
Set、Map、WeakSet 和 WeakMap 的区别
在 JavaScript 中,Set 和 Map 用于存储唯一值和键值对,支持多种操作方法,如添加、删除和检查元素。WeakSet 和 WeakMap 则存储弱引用的对象,有助于防止内存泄漏,适合特定场景使用。
|
8月前
|
C++ 容器
initializer_list初始化列表
initializer_list初始化列表
|
Java Scala Maven
illegal cyclic inheritance involving trait Iterable_2种解决方式
illegal cyclic inheritance involving trait Iterable_2种解决方式
289 0
|
8月前
来及C++primer中的mutable
来及C++primer中的mutable
32 0
C#由Dictionary赋值引发的对引用类型使用的思考
C#由Dictionary赋值引发的对引用类型使用的思考
|
Java API
【Map 和 WeakMap 的区别】
【Map 和 WeakMap 的区别】
135 0
【C++】构造函数之初始化列表(Initialization list of constructors)
【C++】构造函数之初始化列表(Initialization list of constructors)
132 0
|
编译器 C++
C++关键字--mutable
C++关键字--mutable
201 0
C++关键字--mutable