c++关键字mutable深入解析
2018-10-12 14:09
302 查看
1、关于mutable关键字
先说用法,mutable关键字只能修饰非静态以及非常量成员变量,使用mutable修饰的成员变量在const函数中的值是可以修改的。
比如说下面的代码:
class Demo
{
public :
Demo() {}
~Demo() {}
public :
bool getFlag()const
{
m_nAccess++;
return m_bFlag;
}
private :
int m_nAccess;
bool m_bFlag;
};int main()
{
return 0 ;
}
编译的时候会报错,因为const成员函数修改了成员变量,但是如果声明m_nAccess的时候加上关键字mutable就可以了。
PS:一个对象的状态由该对象的非静态数据 成员决定,所以随着数据成员的改变, 对像的状态也会随之发生变化! 如果一个类的成员函数被声明为const类型,表示该函数不会改变对象的状态,也就是该函数不会修改类的非静态数据成员.但是有些时候需要在该类函数中对类的数据成员进行赋值.这个时候就需要用到mutable关键字了。
您可能感兴趣的文章:
相关文章推荐
- 深入解析C++中的mutable关键字
- 深入解析C++中的mutable关键字
- 深入解析C++中的mutable关键字
- 深入入解析build.prop
- Android实战技巧:深入解析AsyncTask与thread的区别 THREAD_POOL_EXECUTOR
- Android实战技巧:深入解析AsyncTask
- 深入P2P——BT种子解析
- 深入理解iputils网络工具-第5篇 arping:地址解析程序
- 深入解析Android类库打包方法
- .NET深入解析LINQ框架(五:IQueryable、IQueryProvider接口详解)
- caffe源码深入学习5:超级详细的caffe卷积层代码解析
- (转)深入解析SendMessage、PostMessage
- 深入 HBase 架构解析(2)
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- Linux Pthread 深入解析
- [JavaScript]ECMA-262-3 深入解析.第四章.函数
- 【读书笔记】深入理解Nginx模块开发与架构解析(二)
- 【转载】select和poll调用深入解析
- 深入解析Windows系统两大进程
- 深入解析Session是否必须依赖Cookie