【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的值

浙公网安备 33010602011771号