日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

const类型成员函数与mutable

發(fā)布時(shí)間:2023/12/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 const类型成员函数与mutable 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

const類型成員函數(shù)與mutable

原文:http://houhualiang.i.sohu.com/blog/view/42619368.htm

?

const類型的成員函數(shù)是指使用const關(guān)鍵字進(jìn)行修飾的類的成員函數(shù)。const類型的成員函數(shù)對函數(shù)內(nèi)部的操作加以一定的限制,比如不可以對對象的屬性進(jìn)行修改等,這樣可以提高程序代碼的正確性。 在使用關(guān)鍵字const對成員函數(shù)修飾的時(shí)候,將const放在成員函數(shù)的后面。在定義對象的時(shí)候,可以使用關(guān)鍵字const聲明對象為常量對象。對于常量對象,如果使用非常量成員函數(shù)來操作,則會出現(xiàn)一個(gè)編譯錯(cuò)誤;同樣,對于使用關(guān)鍵字volatile聲明的對象, 如果使用非volatile類型的成員函數(shù)來操作,也會出現(xiàn)一個(gè)編譯錯(cuò)誤。 如果想修改const類型對象的成員變量,可以使用關(guān)鍵字mutable對該成員變量進(jìn)行修飾。

1 #include <iostream.h> 2 #include <conio.h> 3 class CDate 4 { 5 public: 6 int year; 7 mutable int month; // 使用關(guān)鍵字mutable進(jìn)行修飾 8 CDate(int y=2000,int m=1) 9 { 10 year= y; 11 month= m; 12 }; 13 int GetMonth() const; // 一個(gè)只讀函數(shù) 14 void SetMonth( int m ); // 一個(gè)寫函數(shù) 15 }; 16 int CDate::GetMonth() const 17 { 18 // 下面一行錯(cuò)誤,故屏蔽掉 19 // year++; // 但如果是month+ + ;則沒問題 20 return month; // 在只讀函數(shù)中不可以進(jìn)行改寫操作 21 } 22 void CDate::SetMonth(int m) 23 { 24 month = m; // 設(shè)置月份 25 } 26 void main() 27 { 28 CDate d1; 29 d1.Setmonth(9); 30 d1.year=1975 ; 31 cout<<"d1:"<<d1.year<<""<<d1.Getmonth()<<"月\n"; 32 const CDate d2; 33 d2.month=7; 34 cout<<"d2:"<<d2.year<<""<<d2.Getmonth()<<"月\n"; 35 // 下面一句錯(cuò)誤,故屏蔽掉 36 // d2.SetMonth(7); // 不可以對常量對象調(diào)用非常量成員函數(shù) 37 // 下面一句錯(cuò)誤,故屏蔽掉 38 // d2.year=1973; // 不可以修改常量對象的成員變量 39 }

運(yùn)行結(jié)果:
d1:1975年9月
d2:2000年7月

說明:
? 在上面的CDate類中,成員變量year為普通類型的變量,而成員變量month為mutable類型的成員變量,所以成員變量month不受const的約束,這可以從上面例程中的多個(gè)方面表現(xiàn)。
? 在const類型的成員函數(shù)定義體中,不可以直接或間接地修改普通類型的成員變量(mutable類型的成員函數(shù)除外)。當(dāng)對象被聲明為const類型后,一般也不可以直接或間接地修改對象的成員變量( mutable類型的成員函數(shù)除外)。

轉(zhuǎn)載于:https://www.cnblogs.com/lx09110718/p/constmutable.html

總結(jié)

以上是生活随笔為你收集整理的const类型成员函数与mutable的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。