mutable关键字存在的必要性

本文详细解释了const关键字的用途及意义,并介绍了mutable关键字的作用。通过具体例子阐述了这两种关键字如何帮助程序员更好地控制对象的状态和行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前一直对这个关键字的用途有疑惑,摘一个网上搜集到的很好的解释。

const意思是“这个函数不修改对象内部状态”。

为了保证这一点,编译器也会主动替你检查,确保你没有修改对象成员变量——否则内部状态就变了。

mutable意思是“这个成员变量不算对象内部状态”。

比如,你搞了个变量,用来统计某个对象的访问次数(比如供debug用)。它变成什么显然并不影响对象功用,但编译器并不知道:它仍然会阻止一个声明为const的函数修改这个变量。

把这个计数变量声明为mutable,编译器就明白了:这个变量不算对象内部状态,修改它并不影响const语义,所以就不需要禁止const函数修改它了。

比如定义一个Hash表,内部有两个私有成员lastkey, lastvalue, 这种对外部是不可见的,只是为了加快查询速度等等,这个情况下就可以把这俩变量弄成mutable。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值