c++ mutable
来源:互联网 发布:三菱编程手册 编辑:程序博客网 时间:2024/06/11 19:34
#include <iostream>using std::cout;using std::endl;class Complex { public :Complex() ; void Output() const; int GetOutputTimes() const;private : int m_iTimes; };Complex::Complex(){m_iTimes = 0;}void Complex::Output() const{cout << " output for test " << endl;m_iTimes++;}int Complex::GetOutputTimes() const{return m_iTimes;}int main(){ Complex complex; cout << complex.GetOutputTimes() << endl;complex.Output(); cout << complex.GetOutputTimes() << endl; return 0; }
输出:
pateo@pateo-B86N53X:~/work/study$ g++ main.cc -o mainmain.cc: In member function ‘void Complex::Output() const’:main.cc:25: error: increment of data-member ‘Complex::m_iTimes’ in read-only structurepateo@pateo-B86N53X:~/work/study$
针对变量m_iTimes增加mutable关键字修饰
#include <iostream>using std::cout;using std::endl;class Complex { public :Complex() ; void Output() const; int GetOutputTimes() const;private : mutable int m_iTimes; };Complex::Complex(){m_iTimes = 0;}void Complex::Output() const{cout << " output for test " << endl;m_iTimes++;}int Complex::GetOutputTimes() const{return m_iTimes;}int main(){ Complex complex; cout << complex.GetOutputTimes() << endl;complex.Output(); cout << complex.GetOutputTimes() << endl; return 0; }
输出:
pateo@pateo-B86N53X:~/work/study$ g++ main.cc -o mainpateo@pateo-B86N53X:~/work/study$ ./main0 output for test 1pateo@pateo-B86N53X:~/work/study$
- C++'s mutable
- 关键字 mutable (c++)
- C++'s mutable
- 关键字 mutable (c++)
- 关键字 mutable (c++)
- 关键字 mutable (c++)
- 关键字 mutable (c++)
- 关键字 mutable (c++)
- 关键字mutable(C++)使用
- 关键字 mutable (c++)
- c++关键字mutable
- c++关键字mutable
- 【c++】static、const、mutable关键词
- mutable
- mutable
- mutable
- mutable
- mutable
- 对 VS2008 Debug版本与Release版本本质区别的分析
- ios 开发入门资料
- Spring IOC
- Android常用控件的一些属性
- 博客迁移
- c++ mutable
- KL散度(Kullback-Leibler_divergence)
- 字符串之间相互转换 字符与数值之间的转换
- 【ZooKeeper Notes 5】单机启动多个zk实例注意点
- 嵌入式中的ASoC
- Subsonic 查询
- 枚举型数据在C++类中的应用实例
- spring IOC annotation
- 理解JavaScript中的设计模式