当类的某个函数被声明为const,但是后期扩展又需要修改类的某个成员变量的时候。如果直接修改会报错:“表达式必须是可修改的左值”。此时可以在类成员变量前面添加mutable修饰,这样即使函数是const,但仍可以修改这个类成员变量。例子如下:
直接使用会报错:

class Test
{public:void setData(const int data) const;private:int _data;
};void Test::setData(const int data) const
{_data = data;
}

修改后正常:

class Test
{public:void setData(const int data) const;private:mutable int _data;
};void Test::setData(const int data) const
{_data = data;
}

mutable的使用相关推荐

  1. C++ mutable

    mutable的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutabl ...

  2. C++中关键字volatile和mutable用法

    C/C++中的volatile关键字和const对应,用来修饰变量,用于告诉编译器该变量值是不稳定的,可能被更改.使用volatile注意事项: (1). 编译器会对带有volatile关键字的变量禁 ...

  3. volatile 和 mutable 关键字

    经常接触,但是过一段时间可能又忘了.做个记录. volatile是表示变量易变,不要放缓存,每次实际取,尤其是多线程. mutable表示一个const 类或者数据结构里面,某个字段是可以改变的.

  4. 深入理解C++中的mutable关键字 ​

    深入理解C++中的mutable关键字 mutalbe的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破 ...

  5. 【错误记录】Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )

    文章目录 一.报错信息 二.解决方案 一.报错信息 Google Play 上架要求 Android 的编译版本 和 目标版本都要高于 30 才可以上传 ; 将 Android 的编译版本 和 目标版 ...

  6. mutable关键字

    mutable是为了突破const限制,即使是const函数,也能对mutable变量进行修改. include <iostream>using namespace std;class t ...

  7. C++中mutable、volatile关键字

    C++中mutable.volatile关键字 mutable和volatile 很少遇到这两个关键字,学嵌入式估计知道后者,深入研究C++的估计知道前者. (1)mutable 在C++中,muta ...

  8. 深入理解C++中的mutable关键字

    mutable的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutabl ...

  9. Redux vs Mobx系列(-):immutable vs mutable

    **注意:**我会写多篇文章来比较说明redux和mobx的不同,redux和mobx各有优缺点, 如果对React/Mobx/Redux都理解够深刻,我个人推荐Mobx(逃跑...) React社区 ...

  10. pycharm黄色高亮提示:Default argument value is mutable

    解决办法: 我直接把计算出的结果弄了个全局变量供它调用了 参考文章1:使用mutable对象作为Python函数参数默认值潜在的危害(Default argument is mutable) 参考文章 ...

最新文章

  1. IPV6的设置问题!
  2. Spring MVC 处理异常的3种方式
  3. andy the android ppt,新概念同步测试1.ppt
  4. Linux下基于Libmad库的MP3音乐播放器编写
  5. Linux用户、权限及改变文件所有者及文件所属组多例详解 附python代码
  6. 机器找不到 libcudnn.so.6
  7. Fedora 10下应用网络模拟器NS心得
  8. map std 浮点数索引_C std :: map持有任何类型的值
  9. java中线程观察者模式_设计模式之--观察者模式
  10. 【ThinkPHP 开发辅助系统】问答
  11. 随机森林的原理及Python代码实现
  12. 小米造富神话虚实:平均年薪16万 470亿元期权咋分
  13. 图纸管理软件_企业图纸文档的安全管理与使用,是否遇到这些图纸管理问题?...
  14. StyleGAN图像风格转换相关经典论文、项目、数据集等资源整理分享
  15. Wunderlist使用技巧
  16. 【毕业季】一个普通大二学生的迷茫与展望
  17. 图片转Word文档怎么转?这两种转换方法学起来
  18. adb shell and docker_k8s
  19. uniapp添加阿里字体图标库图标
  20. 上海计算机在职研究生学校排名,上海在职研究生考研周末班十大排名

热门文章

  1. spring boot使用rabbitMq(一)基础篇
  2. 高科技、互联网、医药健康和金融预计2021年调薪率均破7,位居行业TOP榜单
  3. 新网站如何做seo?小白站长实操案例!
  4. 一支口红用了5年_经常使用的这5支口红
  5. RT-Thread 隐藏的宝藏之等待队列
  6. [Android 12 CameraITS环境搭建]
  7. 报表开发工具FastReport .Net 如何在移动端生成Web报表应用?
  8. 【云计算】制造业云计算应用趋势分析!
  9. 有一首歌 因为你而爱上
  10. Android按钮 button