C++中的mutable
来源:互联网 发布:中级java工程师面试题 编辑:程序博客网 时间:2024/05/01 01:26
mutable的作用
在类的常型(const)成员函数中,一般是不让改变类中数据成员的。如果想在常型成员函数中改变类的数据成员,在传统C++中,为达到此目,可采用一种奇怪的方式——先将this指针强制转换成一个本类的指针,然后就可以利用该指针来对类的数据成员进行任意的修改。但是,这种修改是隐藏在成员函数内部的,在类定义(头文件)中根本看不出来,而且它也破坏了设置常型成员函数的本意。
标准C++中新增加了一个关键字mutable(易变/可变/不定/无常的),用在类的数据成员前,明确表示该成员变量可以在const常量型成员函数中被修改。例如:
class A {
int i;
mutable int j;
public:
void f ( ) const;
};
void A::f ( ) const {
i++; // 错误——常型成员函数不允许改变数据成员的值
((A*)this)->i++; // 可以——已经过时,不被提倡
j++; // 正确——mutable型成员变量
}
0 0
- 【转】C/C++中的 mutable、volatile 关键字作用详解
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable
- C++ 中的 mutable 关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的mutable关键字
- C++中的关键字mutable
- C++中的mutable关键字
- C++中的Mutable关键字
- c++中的 mutable 关键字
- C++中的mutable关键字
- C++中的mutable
- 《Cocos2D-iPhone 游戏开发之路》第3节 高仿<Flappy Bird>教程(1)
- DOSBox使用 64位操作系统下 使用dubug.exe
- 视频编解码的学习(3)——信息论
- buffer cache实验7-buffer busy waits-完成
- EditPlus汇编语法文件asm.stx
- C++中的mutable
- RRDTool 详解
- Linux是如何蔓延到技术世界的每一个角落?
- 工作中遇到的问题记录
- 自我介绍的内容要包含四个方面
- monkeyrunner按键
- hdu——1501——Zipper
- buffer cache实验8-free buffer waits-完成
- 非法字符的正则表达式