【C++-笔记】mutable关键字

mutable关键字

在学习C++的时候,第二次看见提到mutable的用法的时候就想着记录一下,加深印象

在类中使用的mutable

在类对象当中,存在一类函数,会在函数声明后面加上const,这个const的含义就是将隐式的this指针定为常量,即函数不可以更改数据成员的值,但是我们如果希望有些值是可以改变的,就可以使用关键字mutable将该数据成员设置为可以改变的:

class test{
public:
    int PlusNum() const;
private:
    mutable int num = 0; //可以在const函数中被修改
    int num2;  // 不可以在const函数中被修改
}
int test::Plusnum() const
{
  return ++num;  // 正确,因为使用了mutable关键字
}

在lambda表达式的捕获列表中使用mutable

在lambda通过值捕获的变量,lambda通常不会改变其值,如果想要改变值捕获变量的值,可以使用mutable关键字,形式如下:

int v = 0;
auto f = [v]() mutable {return ++v;}; //可以通过f改变v的值
posted @ 2022-08-09 22:22  无涯清酒  阅读(44)  评论(0)    收藏  举报