mutable 关键字
- 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 关键字相关推荐
- 深入理解C++中的mutable关键字
深入理解C++中的mutable关键字 mutalbe的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破 ...
- C++中的mutable关键字
mutalbe的中文意思是"可变的,易变的",跟constant(既C++中的const)是反义词. 在C++中,mutable也是为了突破const的限制而设置的.被mutabl ...
- const、volatile、mutable关键字
const关键字 变量宏方面: const 修饰变量:常量非指针类型,非指针常量类型并没有什么区别. const修饰指针:常量指针:是指针不过指向的是常量可以进行p++操作不能进行*p操作:指针 ...
- C++:mutable关键字
mutable 关键字 虽然很少看到 , 但其功能也是比较重要的 , 用mutable关键字修饰的变量 在程序的任何位置 都处于可变状态. 就算是在 const 函数中 其值也能被改变 例: 1 ...
- 除了允许变量被const函数修改之外,'mutable'关键字是否有任何其他用途?
前段时间我遇到了一些用<code>mutable关键字标记类的成员变量的代码. 据我所知,它只是允许你修改const方法中的变量: class Foo { private: mutable ...
- C++基础::mutable 关键字
一个类内只要有 mutable 关键字,就一定会有 const 关键字,否则无 mutable 存在的意义,mutable 是对 const 条件的放松,就好比类内的友元可以访问私有成员变量一样.但反 ...
- 为什么用const保护了成员变量,还要再定义一个mutable关键字来突破const的封锁线?
为什么用const保护了成员变量,还要再定义一个mutable关键字来突破const的封锁线? 保护类的成员变量不在成员函数中被修改,是为了保证模型的逻辑正确,通过用const关键字来避免在函数中错误 ...
- 【C++入门】const和mutable关键字、常函数介绍
1.常函数介绍 1.1.什么是常函数 (1)常函数的定义:类的成员函数对类中任何成员不作修改而只能作访问的函数:简单来说,就是调用类的成员函数不会对类做任何修改: (2)常函数的实现:常函数是依靠co ...
- const和mutable关键字
const修饰变量表示改变量内容不可修改,在类中,const还可以修饰成员函数,修饰成员函数后就不可以更改成员变量了. 可以看出,this指针是const*const类型,既不可以修改其内容,也不能修 ...
- 【C/C++ 关键字 存储类说明符】C/C++ 的mutable 关键字 忽略对该数据成员的常量性检查在const函数中修改变量值
这里写目录标题 1. 引言 1.1 mutable关键字的简介 2. mutable关键字的设计意图 (The Design Intent of the mutable Keyword) 2.1 为什 ...
最新文章
- Fins TCP协议
- 【华为HCNA】访问控制列表ACL实例配置
- Codeforces Round #630 (Div. 2) F. Independent Set 树形dp
- 人机协作机器人发展趋势_发那科童梁:机器人化不是时髦!有效的人机协作投资回报率更高...
- vs2013中对工程、项目和类更名
- 数据库名,全局数据库名,SID区别及有感
- Codeforces Round #301 (Div. 2) B. School Marks 构造/贪心
- SWPU信息学院团体程序设计竞赛题解
- 夏梦竹谈Hive vs. HBase的区别
- vue选中点击的元素_vue.js - Vue 点击当前元素触发当前事件怎么做??
- 【渝粤题库】广东开放大学 建筑CAD 形成性考核
- python怎么查找word文档,Python读取word文档内容
- SpringBoot整合ureport2
- activiti会签以及动态设置办理人员
- 时钟的同步与异步问题
- 3.7、PHP命名空间
- 虫师乙醇自动化测试培训第三期
- SAP F1 无法显示该网页 完美解决方案(不用重装SAP)
- WTGNet-PlC协议转换网关
- pytest+Allure+jenkins