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;
}
相关文章
|
1月前
|
JavaScript 前端开发
Symbol有哪些常用的内置方法
Symbol有哪些常用的内置方法
|
1月前
|
C++ 容器
initializer_list初始化列表
initializer_list初始化列表
|
1月前
来及C++primer中的mutable
来及C++primer中的mutable
14 0
|
9月前
|
C#
C#由Dictionary赋值引发的对引用类型使用的思考
C#由Dictionary赋值引发的对引用类型使用的思考
|
10月前
|
JavaScript 前端开发 安全
immutable及其常用用法
immutable及其常用用法
|
JavaScript Java
学习typeScript(weakMap,weakSet,set,map)
它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适
96 0
|
编译器 C++
C++关键字--mutable
C++关键字--mutable
176 0
C++关键字--mutable