C++中mutable的用法
mutable的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。
在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。
我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。
以下代码如果要在matest中进行修改m_a的值,就得在定义const A a,去掉const,并且在A类方法的声明时去掉const,但是mutable可以突破这层限制。
#include <iostream>using namespace std;class A
{public:A(int a):m_a(a){}void matest()const;void macout()const{cout << m_a << endl;}
private:int m_a;
};void A::matest() const
{//m_a = 10;//被const修饰的函数不允许修好任何类状态值(类里面的数据)cout << m_a << endl;
}int main()
{const A a(1);a.macout();//用const修饰的一个类使用一个const修饰的方法return 0;
}
#include <iostream>using namespace std;class A
{public:A(int a):m_a(a){}void matest()const;void macout()const{cout << m_a << endl;}
private:mutable int m_a;
};void A::matest() const
{m_a = 10;//在定义时用mutable来突破这层限制cout << m_a << endl;
}int main()
{const A a(1);a.macout();//用const修饰的一个类使用一个const修饰的方法return 0;
}
C++中mutable的用法相关推荐
- c++ 中mutable的用法
multable虽然在日常的工作中很少用到,但是毕竟multable属于c++语法中的一个关键自所以,在大多数的面试中经常被提到,所以如果你要重新找工作了还是要了解这个关键字的 再了解multable ...
- C++中const关键字用法详解及实例和源码下载(一)
最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...
- java 字符串用法_Java中的字符串用法小结
本文实例总结了Java中的字符串用法.分享给大家供大家参考.具体分析如下: 字符串的本质是char类型的数组,但在java中,所有用双引号""声明的字符串都是一个String类的对 ...
- mysql中change用法,mysql 中alter的用法以及一些步骤
mysql 中alter的用法以及一些方法 在用到alter的时间,查到了这个文章,就copy下来了,详细进入下面链接: MySQL之alter语句用法总结 1:删除列 ALTER TABLE [表名 ...
- mysql中正则表达式的用法_Mysql中正则表达式Regexp常见用法
Mysql中Regexp常见用法 模糊匹配,包含特定字符串 # 查找content字段中包含"车友俱乐部"的记录 select * from club_content where ...
- 【C++】C/C++ 中 static 的用法全局变量与局部变量
C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
- python中str的index什么意思_python中index的用法是什么
index() 一般用处是在序列中检索参数并返回第一次出现的索引,没找到就会报错,比如:>>> t=tuple('Allen') >>> t ('A', 'l', ...
- php foreach是什么,php中foreach的用法是什么
php中foreach的用法是:[foreach ($array as $value) {要执行代码;}],每进行一次循环,当前数组元素的值就会被赋值给$value变量,在进行下一次循环时,将得到数组 ...
最新文章
- 假赋值java_Java十四天零基础入门-Java赋值运算符
- 基站定位LAC,CID转经纬度
- String类中toCharArray()方法的用法
- 推荐一款万能抓包神器:Fiddler Everywhere
- 关于 SAP Spartacus 服务器端渲染 SSR 无法使用窗口宽度以进行自适应设计的问题
- php一句话后门学习(含免杀)
- Proximal Algorithms--Accelerated proximal gradient method
- AttributeError: type object ‘Image‘ has no attribute ‘open‘
- cdoj 1328 卿学姐与诡异村庄 Label:并查集 || 二分图染色
- Java Socket文件上传
- 解决SQL数据库无法附加
- 麻瓜编程python爬虫微专业_微专业:Python Web开发工程师(零基础课程),麻瓜编程侯爵主讲 价值2400元...
- 十二星座、超完美解析!
- 智能无感验证实战案例:神州优车
- Web前端HTML、CSS测试:世界地球日
- 计算机相关商标,计算机的商标是属于哪一类?
- 江恩 计算机,江恩计算器
- The absolute uri: [http://java.sun.com/jsp/jstl/core] cannot be reso site:blog.csdn.net
- request.setHeader() 方法
- Half a million dollars is or are a lot of money?