先说用法,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
最新推荐文章于 2025-10-08 13:28:30 发布
本文详细介绍了mutable关键字在C++中的使用方法及其应用场景。mutable关键字可以用于允许const成员函数修改指定的非静态数据成员,从而实现某些特定功能而不破坏const函数不改变对象状态的原则。
1051

被折叠的 条评论
为什么被折叠?



