mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词

在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

常函数:
成员函数后加const,我们称这个函数为常函数。void show() const{}  //show就是一个常函数
常函数内不可以修改成员属性。
成员属性声明时加关键词mutable后,在常函数中依然可以修改。

常对象:
声明对象前加const,称这个对象为常对象。const Person p(100);  //这个p就是常对象
常对象只能调用常函数

#include <iostream>
using namespace std;/*
常函数:
成员函数后加const,我们称这个函数为常函数。
常函数内不可以修改成员属性。
成员属性声明时加关键词mutable后,在常函数中依然可以修改。常对象:
声明对象前加const,称这个对象为常对象。
常对象只能调用常函数。
*/class Person{
public://有参构造Person(int a){this->m_A = a;}void showPerson() const   //showPerson就是一个常函数{//this->m_A = 100;   //常函数中不可以修改成员属性this->m_B = 200;  //因为成员属性在声明时加关键词mutable,所以在常函数中依然可以修改。}void func()   //普通函数, 不是常函数{}int m_A;mutable int m_B;
};int main(int argc,char *argv[])
{//1. 验证常函数//Person p(18);//p.showPerson();//2. 验证常对象const Person p(100);  //这个p就是常对象//p.showPerson();   //常对象可以调用常函数的。//p.func();         //常对象不可以调用普通函数的。return 0;
}

const mutable相关推荐

  1. C++基础::mutable 关键字

    一个类内只要有 mutable 关键字,就一定会有 const 关键字,否则无 mutable 存在的意义,mutable 是对 const 条件的放松,就好比类内的友元可以访问私有成员变量一样.但反 ...

  2. C++ 中的 mutable 关键字

    本文转载自:https://liam.page/2017/05/25/the-mutable-keyword-in-Cxx/ 作者:Liam Huang mutable 的字面意思是 「可变的」,因此 ...

  3. C++编程经验总结1

    面向对象的精髓: 主函数其实就是对于类的元素和动作的重新组合来进行一项活动. 一个思想概念:程设是清楚的,完美的. 数学是清楚的,是完美的. 物理是有趣的,尤其是量子物理 生物是清楚的,尤其是基因 外 ...

  4. C++ 11 新特性(十四)C++类

    (一)综述:类是我们自己定义的数据类型 设计时要考虑的角度: 站在设计和实现的角度来考虑: 站在使用者的角度考虑: 父类,子类之间的考虑: (二)explicit 首先, C++中的explicit关 ...

  5. 典型的 C++ 程序员成长经历

    From:http://blog.csdn.net/breakerzy/article/details/7399872 一个典型的 C++ 程序员成长经历: 1.  完整的学一遍 C++ 所有语言特性 ...

  6. php tire树,Immutable.js源码之List 类型的详细解析(附示例)

    本篇文章给大家带来的内容是关于Immutable.js源码之List 类型的详细解析(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 一.存储图解 我以下面这段代码为例子,画 ...

  7. Qt4_Shreadsheet电子表应用

    简介 从Qt4--快速设计框开始到Qt4--子类化QTableWidgetItem,讲解了该应用的中每个函数的构建以及应用.详情前往这些章节里面阅读. main.cpp #include <QA ...

  8. Qt4_子类化QTableWidgetItem

    子类化QTableWidgetItem Cell类这个类用作保存单元格的公式,并且它还重新实现了QTableWidgetem: :data()函数,Spreadsheet可以通过QTableWid-g ...

  9. class checklist

    构造函数 1)initialization list 2)异常保护,资源泄漏检查 3)this指针的使用 4)其他构造函数调用 5)虚函数调用 6)拷贝构造函数 7)隐式类型转换 析构函数 1)异常保 ...

最新文章

  1. TensorFlow中的random_normal()函数
  2. Hibernate 封装的通用DAO基础类
  3. OpenSceneGraph 笔记--如何导出三角形数据
  4. FPGA中系统运行频率计算方法与组合逻辑的层级
  5. c#_StringBuilder的用法总结
  6. python爬虫接单经历_一个Python小白5个小时爬虫经历
  7. 冲刺第八天 12.4 TUE
  8. 实例1.2:获得应用程序主窗口指针
  9. java web不用框架_初学javaweb,远离各自框架
  10. 移动端的h5遇到的一些坑记录
  11. 计算机office软件有哪些功能,office2016新功能有哪些?
  12. 最新Windows SDK for Windows7 开发包下载
  13. Oracle用户密码过期策略
  14. k2p 登录路由器shell失败_斐讯p.to打不开_p.to进不去怎么办?-192路由网
  15. wmb 开发的几个坑
  16. rust语言和cargo介绍
  17. linux rescue救援模式,Linux_linux中使用rescue救援模式,很多人都不知道Linux有一个救 - phpStudy...
  18. 禁止使用计算机热点,设置Windows 10 禁止自动连接Wifi热点
  19. nodejs 系统 临时文件夹
  20. 如何在ios手机端的Safari浏览器 中“查看网页源代码”

热门文章

  1. 嵌入式LWIP网络客户端设计教程
  2. 红包大战一触即发,有哪些新玩法?
  3. yolo3-pytorch训练摩托车模型并且识别
  4. 查询linux文件信息命令
  5. mysql启动报错:Cant start server cant check PID filepath No such file or directory
  6. 跟我学雨林木风系统制作——1.简介
  7. 【职业鸡汤】外国的月亮比较圆 || 专访北美Intel后端设计师Rui
  8. 优酷世界杯的好后卫:云计算成为靠谱的流媒体保障体系
  9. Android 7.0 SystemUI 状态/导航栏的隐藏与显示
  10. cosine 相似度计算总结