现在的位置: 首页 > 综合 > 正文

c++关键字mutable

2013年10月14日 ⁄ 综合 ⁄ 共 487字 ⁄ 字号 评论关闭

 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关键字了。

抱歉!评论已关闭.