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

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变...

深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变...

C++ 关键字 mutable

在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也...

深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(即C++中的const)是反义词。    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,...

C++的mutable用法

提起mutable,就不得不提const,

mutable_C++关键字

关键字 mutable 是一个奇怪的修饰符(specifier),它只能够用于一个类的非静态数据成员。下面我将讨论 mutable 的语义和用法,但是首先我要解释一下 C++ 对象模型的一个关键概念。...

c++中的const,static,volatie,mutable关键字

大多地方这篇 http://blog.csdn.net/wuliming_sc/article/details/3717017 已经说得很清楚了,我就不再赘述,主要补充一些有意思的地方。 尽在下面这...

c++中的 mutable 关键字

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

从零开始学C++之对象的使用(三):static 与单例模式、auto_ptr与单例模式、const 用法小结、mutable修饰符

一、static 与单例模式 单例模式也就是简单的一种设计模式,它需要: 保证一个类只有一个实例,并提供一个全局访问点 禁止拷贝  C++ Code  1 2 3 4 5 6 7 8...

深入理解C++中的mutable关键字

mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。   在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ mutable
举报原因:
原因补充:

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