• const 关键字 用于类的成员函数,成为常成员函数,即:不允许在常成员函数的内部 (实现里) 修改数据成员的值。
  • mutable 关键字 用于类的成员函数,即:允许在常成员函数的内部 (实现里) 修改数据成员的值。

mutable 的中文意思是 可变的、易变的,const (常量、常数)的意思,他们俩也就是反义词。 mutable 也就是为了突破const的,被mutable 修饰的变量,是处于可变的状态,在类中的常成员函数中,是不能修改数据成员的(在成员函数中,如果函数实现里不修改数据成员(对象的内部状态,也就是成员变量),最好声明为const),但是,也难免会在const 成员函数中去修改数据成员,那么这时就要将该数据成员用mutable修饰。

下面的示例代码来解释说明:

#include<iostream>
using namespace std;
class A
{
public:A():a(2),b(2.5){}  //列表初始化void get_a() const;   //常成员函数void get_b() const;    //常成员函数
private:mutable int a;  //a 被 mutable 修饰float b;
};
void A::get_a() const
{cout << a << endl;  //2a = 9;   //a 被修饰为mutable类型,a在常成员函数里,能修改a的值(能修改该数据成员)//b=5.5;       //b 不是mutable类型,所以这里去修改b是错误的cout << a << endl;  //9
}
void A::get_b() const
{cout << b << endl; //2.5//b=5.5;       //b 不是mutable类型,所以这里去修改b是错误的
}int main()
{A Aa;Aa.get_a();Aa.get_b();return 0;
}

如有错误或不足地方,还望前辈们指点。

mutable 关键字相关推荐

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

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

  2. C++中的mutable关键字

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

  3. const、volatile、mutable关键字

     const关键字 变量宏方面: const 修饰变量:常量非指针类型,非指针常量类型并没有什么区别. const修饰指针:常量指针:是指针不过指向的是常量可以进行p++操作不能进行*p操作:指针 ...

  4. C++:mutable关键字

    mutable 关键字 虽然很少看到 , 但其功能也是比较重要的 , 用mutable关键字修饰的变量  在程序的任何位置 都处于可变状态. 就算是在 const 函数中  其值也能被改变 例: 1 ...

  5. 除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?

    前段时间我遇到了一些用<code>mutable关键字标记类的成员变量的代码. 据我所知,它只是允许你修改const方法中的变量: class Foo { private: mutable ...

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

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

  7. 为什么用const保护了成员变量,还要再定义一个mutable关键字来突破const的封锁线?

    为什么用const保护了成员变量,还要再定义一个mutable关键字来突破const的封锁线? 保护类的成员变量不在成员函数中被修改,是为了保证模型的逻辑正确,通过用const关键字来避免在函数中错误 ...

  8. 【C++入门】const和mutable关键字、常函数介绍

    1.常函数介绍 1.1.什么是常函数 (1)常函数的定义:类的成员函数对类中任何成员不作修改而只能作访问的函数:简单来说,就是调用类的成员函数不会对类做任何修改: (2)常函数的实现:常函数是依靠co ...

  9. const和mutable关键字

    const修饰变量表示改变量内容不可修改,在类中,const还可以修饰成员函数,修饰成员函数后就不可以更改成员变量了. 可以看出,this指针是const*const类型,既不可以修改其内容,也不能修 ...

  10. 【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值

    这里写目录标题 1. 引言 1.1 mutable关键字的简介 2. mutable关键字的设计意图 (The Design Intent of the mutable Keyword) 2.1 为什 ...

最新文章

  1. Fins TCP协议
  2. 【华为HCNA】访问控制列表ACL实例配置
  3. Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
  4. 人机协作机器人发展趋势_发那科童梁:机器人化不是时髦!有效的人机协作投资回报率更高...
  5. vs2013中对工程、项目和类更名
  6. 数据库名,全局数据库名,SID区别及有感
  7. Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心
  8. SWPU信息学院团体程序设计竞赛题解
  9. 夏梦竹谈Hive vs. HBase的区别
  10. vue选中点击的元素_vue.js - Vue 点击当前元素触发当前事件怎么做??
  11. 【渝粤题库】广东开放大学 建筑CAD 形成性考核
  12. python怎么查找word文档,Python读取word文档内容
  13. SpringBoot整合ureport2
  14. activiti会签以及动态设置办理人员
  15. 时钟的同步与异步问题
  16. 3.7、PHP命名空间
  17. 虫师乙醇自动化测试培训第三期
  18. SAP F1 无法显示该网页 完美解决方案(不用重装SAP)
  19. WTGNet-PlC协议转换网关
  20. pytest+Allure+jenkins

热门文章

  1. 美化网页背景 -让背景拥有斜线
  2. Linux--查看文件的详细信息及其含义
  3. 微信主要版本的功能说明
  4. Oracle 高级复制 (同步复制) 配置步骤详细说明
  5. 魔法大锅炉-Eric Raymond
  6. 计算机全国211院校排名2015,2015年全国211大学名单排行榜
  7. linux-三种远程连接服务器方式
  8. Pytorch相似度计算
  9. cosine 相似度计算总结
  10. 不熬夜,不修仙,B站打怪升级脚本一键搞定!