在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