腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
首页
标签
mutable
#
mutable
关注
专栏文章
(11)
技术视频
(0)
互动问答
(2)
C中mutable关键字存在的必要性是什么
1
回答
mutable
gavin1024
在C++中,mutable关键字用于修饰类成员变量,表示该成员变量可以在const成员函数中被修改。这对于实现逻辑上的const但实际上需要修改内部状态的操作非常有用。 mutable关键字的必要性主要体现在以下几个方面: 1. 保持逻辑一致性:当一个类的某些成员变量在逻辑上应该被视为常量时,可以将其声明为const。但是,在某些情况下,需要修改这些成员变量以保持类的内部状态一致。使用mutable关键字可以在const成员函数中修改这些成员变量,从而保持逻辑一致性。 2. 提高性能:在某些情况下,mutable成员变量可以用于缓存计算结果,从而提高性能。例如,一个计算圆的面积的类可以将半径存储为mutable成员变量,并在计算面积时缓存结果。这样,在多次调用计算面积的函数时,就不需要重新计算,从而提高性能。 3. 实现线程安全:在多线程环境下,使用mutable成员变量可以实现线程安全。例如,一个线程安全的计数器类可以将计数器存储为mutable成员变量,并在增加计数器时使用互斥锁进行同步。这样,在多线程环境下,就可以保证计数器的正确性。 总之,mutable关键字在C++中具有重要的作用,可以帮助我们实现逻辑上的const和实际上的非const操作,提高代码的可读性和性能。...
展开详请
赞
0
收藏
0
评论
0
分享
在C++中,mutable关键字用于修饰类成员变量,表示该成员变量可以在const成员函数中被修改。这对于实现逻辑上的const但实际上需要修改内部状态的操作非常有用。 mutable关键字的必要性主要体现在以下几个方面: 1. 保持逻辑一致性:当一个类的某些成员变量在逻辑上应该被视为常量时,可以将其声明为const。但是,在某些情况下,需要修改这些成员变量以保持类的内部状态一致。使用mutable关键字可以在const成员函数中修改这些成员变量,从而保持逻辑一致性。 2. 提高性能:在某些情况下,mutable成员变量可以用于缓存计算结果,从而提高性能。例如,一个计算圆的面积的类可以将半径存储为mutable成员变量,并在计算面积时缓存结果。这样,在多次调用计算面积的函数时,就不需要重新计算,从而提高性能。 3. 实现线程安全:在多线程环境下,使用mutable成员变量可以实现线程安全。例如,一个线程安全的计数器类可以将计数器存储为mutable成员变量,并在增加计数器时使用互斥锁进行同步。这样,在多线程环境下,就可以保证计数器的正确性。 总之,mutable关键字在C++中具有重要的作用,可以帮助我们实现逻辑上的const和实际上的非const操作,提高代码的可读性和性能。
除了允许变量被const函数修改以外,'mutable'关键字还有其他用途吗?
2
回答
黑客
、
mutable
、
变量
、
函数
、
线程安全
Ne_biubiubiu
这就是世界结束的方式
使用boost :: mutex正是这个关键字的目的。另一个用途是内部结果缓存来加速访问。 基本上,“可变”适用于任何不影响对象的外部可见状态的类属性。 在你的问题的示例代码中,如果done_的值影响外部状态,mutable可能不合适,这取决于...中的内容; 部分。...
展开详请
赞
0
收藏
0
评论
0
分享
使用boost :: mutex正是这个关键字的目的。另一个用途是内部结果缓存来加速访问。 基本上,“可变”适用于任何不影响对象的外部可见状态的类属性。 在你的问题的示例代码中,如果done_的值影响外部状态,mutable可能不合适,这取决于...中的内容; 部分。
热门
专栏
CDN及云技术分享
146 文章
40 订阅
GiantPandaCV
724 文章
101 订阅
丁老师的技术随笔
31 文章
15 订阅
c++与qt学习
1.2K 文章
36 订阅
全栈程序员必看
55K 文章
544 订阅
领券