关闭

C++ mutable

159人阅读 评论(0) 收藏 举报
分类:

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

0
0

猜你在找
深度学习基础与TensorFlow实践
【在线峰会】前端开发重点难点技术剖析与创新实践
【在线峰会】一天掌握物联网全栈开发之道
【在线峰会】如何高质高效的进行Android技术开发
机器学习40天精英计划
Python数据挖掘与分析速成班
微信小程序开发实战
JFinal极速开发企业实战
备战2017软考 系统集成项目管理工程师 学习套餐
Python大型网络爬虫项目开发实战(全套)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5348次
    • 积分:306
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类