C++ mutable

原创 2016年03月06日 21:14:33

mutable 英语翻译是易变的,性情不定的。常看到用来修饰成员函数变量,表示这个函数可以被修改,即使这个变量在const函数中,mutable修饰的变量也能被修改,从而忽略const的限制。

#include <iostream>

class CMutable
{
public:
    CMutable(void):m_Count(0){}
    ~CMutable(void){}

    int countMutable() const
    {
        m_Count++;
        return m_Count;
    }

private:
    mutable int m_Count;
};

int main()
{
    CMutable MyMutable;
    int Res = MyMutable.countMutable();

    return 1;
}

在上面类中计算countMutable()中虽然const修饰,但是对象的成员变量m_Count还是可以被修改。但是请注意,mutable的不能用来修饰static和const变量,因为static属于类而不属于具体某个对象,而mutable就是用来表示类对象的某些数据成员在const函数中可以被修改,所以两者无关联。const本就是互斥的,在一起就冲突矛盾了,不能修饰。

【参考资料】
【1】https://msdn.microsoft.com/en-us/library/4h2h0ktk.aspx
【2】http://www.jb51.net/article/42046.htm

C++ 中的 mutable 关键字

C++ 中的 mutable 关键字在C++中,mutable 是为了突破 const 的限制而设置的。可以用来修饰一个类的成员变量。被 mutable 修饰的变量,将永远处于可变的状态,即使是 co...
  • liyuanbhu
  • liyuanbhu
  • 2015年12月20日 19:32
  • 2251

mutable在c++中的用法

在C++语言中,mutable是C++语言中的关键字,可以修饰一个成员变量,就像static,const等修饰一个变量一样(注意:如果一个结构体或者是类的成员变量被static或者const修饰的话,...
  • zhangbinsijifeng
  • zhangbinsijifeng
  • 2015年06月04日 19:25
  • 1523

c++ 中mutable的用法

multable虽然在日常的工作中很少用到,但是毕竟multable属于c++语法中的一个关键自所以,在大多数的面试中经常被提到,所以如果你要重新找工作了还是要了解这个关键字的 再了解multable...
  • Cyang_liu
  • Cyang_liu
  • 2017年03月23日 21:24
  • 351

c++中的 mutable 关键字

我们在学习C++类的时候,经常会看到这样的成员函数 void function_name(...)const;相比普通的成员函数,其最后加 了个 const,像这种在函数声明的参数表后面出现的c...
  • Bruce_Zeng
  • Bruce_Zeng
  • 2012年11月09日 14:12
  • 3063

C++中的mutable关键字

    mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰...
  • starlee
  • starlee
  • 2006年12月05日 09:13
  • 15229

浅谈C++类(3)--两个特殊成员mutable与static成员

 欢迎转载,但请标明作者 “九天雁翎”,当然,你给出这个帖子的链接更好。这一次讲我一直没有怎么搞明白的两个特殊类成员,mutable,static。接着第(1)次的内容,从水果讲起。我们希望有一个成员...
  • vagrxie
  • vagrxie
  • 2007年04月26日 17:33
  • 2920

C++中mutable关键字的用法

mutalbe的中文意思是“可变的,易变的”,是constant(即C++中的const)的反义词。在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量将永远处于...
  • K346K346
  • K346K346
  • 2015年08月27日 17:12
  • 1610

C++ 之 explicit,mutable,volatile 浅析

explicit:放在构造函数前面可以阻止构造函数的隐式类型转换。这样可以避免不必要的错误。 violate:告诉编译器不要去假定这个变量的值,因为它随时可能会改变。这是为了阻止某些编译器的优化策略...
  • u013630349
  • u013630349
  • 2015年09月07日 20:24
  • 808

protobuf mutable_* 函数

protobuf mutable_* 函数 从该函数的pu
  • su_787910081
  • su_787910081
  • 2014年10月31日 10:30
  • 7002

C++回顾之const对象、const成员函数、mutable类型

总结const的各种用法,主要讲述const对象,及const 成员函数,还有mutable修饰的数据成员...
  • ab198604
  • ab198604
  • 2014年02月08日 11:02
  • 3500
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ mutable
举报原因:
原因补充:

(最多只允许输入30个字)