??? 存儲描述符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
探丫頭 閱讀(1285)
評論(4) 編輯 收藏 引用 所屬分類:
編程語言——C++