C++中的mutable关键字

在C++中mutable关键字正如字面意思所示,表示「可变的」之意。一般在以下两种情况中使用较多,一是修饰类中的变量,用来突破const的限制,二是在Lambda表达式中使用,用来捕获修改表达式之外的变量值。

下面我们就针对这两种使用场景逐个介绍。

mutable修饰类的成员变量

以下实例代码有一个类Person,内部有一个age成员变量表示年龄,有一个被const修饰的公共方法获取年龄:

#include
class Person{
public:
explicit Person(int a):age(a){

}
~Person(){

}
int getAge() const{
return age;
}
private:
int age{18};
};

int main() {
const Person person(20);
std::cout