深入解析c++关键字mutable的实现方法
来源:爱站网时间:2019-08-20编辑:网友分享
在C++中,也可以设置可变项来突破const,由可变变量修改的变量将始终处于可变状态,即使在常量函数中也是如此,下文是爱站技术频道小编为大家带来的深入解析c++关键字mutable的实现方法,一起来了解一下吧!
在C++中,也可以设置可变项来突破const,由可变变量修改的变量将始终处于可变状态,即使在常量函数中也是如此,下文是爱站技术频道小编为大家带来的深入解析c++关键字mutable的实现方法,一起来了解一下吧!
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++中const的操作方法
下一篇:详细解析C++空类默认函数