存储描述符mutable用来特别说明某个类的成员变量需要以一种允许更新的方式存储--即使它是某个const对象的成员。换言之,mutable意味着“不可能是const”。
举例如下:
class Test
{
public:
void SetValue(int i) const {m_i=i;}
private:
mutable int m_i;
};
上面的代码在使用的时候是没有问题的,但是如果int m_i的定义去掉mutable,则会出现 “error C2166: l 值指定常数对象”这样的错误提示。
可能有朋友说,可以通过const_cast 之类的转换实现,但是这个运算符并不是总能正确的转换的。
posted on 2007-02-11 08:35
探丫头 阅读(1264)
评论(4) 编辑 收藏 引用 所属分类:
编程语言——C++