在C++中,mutable也是為了突破const的限制而設(shè)置的。被mutable修飾的變量,將永遠(yuǎn)處于可變的狀態(tài),即使在一個(gè)const函數(shù)中。
最近在看irrlicht的代碼,其關(guān)于引用計(jì)數(shù)的實(shí)現(xiàn)中使用了mutable關(guān)鍵字。關(guān)鍵代碼如下:
網(wǎng)上有人說(shuō):mutable 數(shù)據(jù)成員的使用看上去像是騙術(shù),因?yàn)樗軌蚴?const 函數(shù)修改對(duì)象的數(shù)據(jù)成員。然而,明智地使用 mutable 關(guān)鍵字可以提高代碼質(zhì)量,因?yàn)樗軌蜃屇阆蛴脩?hù)隱藏實(shí)現(xiàn)細(xì)節(jié),而無(wú)須使用不確定的東西,比如 const_cast<>。
我認(rèn)為C++設(shè)置出這個(gè)關(guān)鍵字應(yīng)該有更深層次的理由和初衷。壇子里大牛多多,請(qǐng)大家討論一下在實(shí)際工作或編碼過(guò)程中對(duì)于該關(guān)鍵字的使用和認(rèn)識(shí)。謝謝各位。
posted on 2010-10-30 11:27 孔雀 閱讀(2293) 評(píng)論(7) 編輯 收藏 引用 所屬分類(lèi): C/C++