zoukankan      html  css  js  c++  java
  • 【第六章】const函数改变变量的值——mutable

    mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。

    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。

      我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。

    #include "stdafx.h"
    #include <iostream>
    #include <iomanip>

    using namespace std;
    class C
    {
    public:
     C(int i):m_Count(i){}
     int incr() const
     {
      return ++m_Count;
     }
     int decr() const
     {
      return --m_Count;
     }
    private:
     mutable int m_Count;
    };

    int main()
    {
     C c1(0),c2(10);

     for (int tmp, i=0;i<10;i++)
     {
      tmp = c1.incr();
      cout<<setw(tmp)<<setfill(' ')<<tmp<<endl;
      tmp = c2.decr();
      cout<<setw(tmp)<<setfill(' ')<<tmp<<endl;
     }
     getchar();
     return 0;
    }

  • 相关阅读:
    iOS设计模式-工厂方法
    iOS设计模式-原型模式
    (转)iOS 屏幕适配
    iOS设计模式-MVC
    转 常用第三方库
    学习资料收集
    xcode 插件
    CocoaPods安装和使用
    iOS 友盟统计的bug分析
    HTML——表格
  • 原文地址:https://www.cnblogs.com/slysky/p/2274501.html
Copyright © 2011-2022 走看看