在C++中,也可以設(shè)置可變項(xiàng)來(lái)突破const,由可變變量修改的變量將始終處于可變狀態(tài),即使在常量函數(shù)中也是如此,下文是武林技術(shù)頻道小編為大家?guī)?lái)的深入解析c++關(guān)鍵字mutable的實(shí)現(xiàn)方法,一起來(lái)了解一下吧!
1、關(guān)于mutable關(guān)鍵字
先說(shuō)用法,mutable關(guān)鍵字只能修飾非靜態(tài)以及非常量成員變量,使用mutable修飾的成員變量在const函數(shù)中的值是可以修改的。
比如說(shuō)下面的代碼:
?
int main()
{
?? return 0 ;
}
編譯的時(shí)候會(huì)報(bào)錯(cuò),因?yàn)閏onst成員函數(shù)修改了成員變量,但是如果聲明m_nAccess的時(shí)候加上關(guān)鍵字mutable就可以了。
?
PS:一個(gè)對(duì)象的狀態(tài)由該對(duì)象的非靜態(tài)數(shù)據(jù) 成員決定,所以隨著數(shù)據(jù)成員的改變, 對(duì)像的狀態(tài)也會(huì)隨之發(fā)生變化! 如果一個(gè)類的成員函數(shù)被聲明為const類型,表示該函數(shù)不會(huì)改變對(duì)象的狀態(tài),也就是該函數(shù)不會(huì)修改類的非靜態(tài)數(shù)據(jù)成員.但是有些時(shí)候需要在該類函數(shù)中對(duì)類的數(shù)據(jù)成員進(jìn)行賦值.這個(gè)時(shí)候就需要用到mutable關(guān)鍵字了。
以上就是深入解析c++關(guān)鍵字mutable的實(shí)現(xiàn)方法,相信大家今天一定又學(xué)習(xí)到新的知識(shí)了吧?如果你想不斷的進(jìn)步,你可以隨時(shí)來(lái)武林技術(shù)頻道學(xué)習(xí),相信一定能大大提高你的專業(yè)能力。
新聞熱點(diǎn)
疑難解答