在实现类的过程中,我们经常将函数内部不去修改成员属性的函数设置为const,这样即安全,又可以给const的常量提供更多的函数可调用。
但是,我们在开发过程中,可以有下面需求: 希望成员函数为const,但是又想要在此函数中修改某些特定的成员属性。
我们知道const修饰的函数内部是不可以修改成员属性的,但是mutable关键字可以实现这样的功能。 -- 在想要在const函数中修改的成员属性前加上mutable,这样就可以在const函数中进行修改了。
mutable 译为: 可变。
代码1: 直接在const修饰的函数中修改属性 -- 会发现会出错,是不允许的。
代码2:我们希望在const的函数中可以修改属性score,那么我们就在此属性前加上mutable。-- 这样就不会报错了。