mutable keyword allows you to modify a variable inside a const context
e.g:
class Person {
private:
mutable int age;
public:
Person(int age) : age(age) {
}
void setAge(int age) const {
Person::age = age;
}
int getAge() const {
return Person::age;
}
};
int main() {
Person person(23);
std::cout << "Person age " << person.getAge() << std::endl;
person.setAge(24);
std::cout << "Person modified age " << person.getAge() << std::endl;
return 0;
}