C++11 mutable关键字用法详解
文章目录
转载请注明 作者:源码先生, 文章链接:https://www.debugself.com/2017/09/30/cpp_mutable/, 请勿用于商业用途
C++中const关键字表示“不可变的”,C++11引入mutalbe关键字,表示是“可变的,易变的”,引入mutalbe关键字就是为了突破const的限制.
下面总结了三种mutalbe的使用场景。
场景一
1 | int main() |
上述代码中x为const变量,正常情况下是不能修改x以及x的成员的,通过mutable ,可以顺利修改x的成员n2了
场景二
按引用传递参数时,为了防止参数被修改,经常使用const来限制参数;
1 | class Foo { |
上述代码中,如果缺少mutable ,是无法编译通过的,添加mutable 后可以顺利修改count的值了
场景三
用在Lambda表达式中,突破不能修改按值捕获的变量的限制,见《C++11 Lambda表达式(匿名函数)用法详解》