中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站下要加個備案號 怎么做上海推廣系統(tǒng)

網(wǎng)站下要加個備案號 怎么做,上海推廣系統(tǒng),山東做網(wǎng)站建設(shè)的好公司,外貿(mào)論壇排行榜目錄 1.賦值運算符重載 1.1運算符重載 1.2賦值運算符重載 1.2.1賦值運算符重載格式 1.2.2賦值運算符只能重載成成員函數(shù)不能重載成全局函數(shù) 1.2.3同拷貝函數(shù)一樣,如果類是形如日期類這樣變量全是內(nèi)置類型的,賦值運算符就必須自己實現(xiàn),…

目錄

1.賦值運算符重載

1.1運算符重載

1.2賦值運算符重載

1.2.1賦值運算符重載格式

1.2.2賦值運算符只能重載成成員函數(shù)不能重載成全局函數(shù)?

1.2.3同拷貝函數(shù)一樣,如果類是形如日期類這樣變量全是內(nèi)置類型的,賦值運算符就必須自己實現(xiàn),用編譯器默認生成的就行,但是如果涉及到資源管理就必須要自己實現(xiàn)賦值運算符。

1.3前置++和后置++重載

2.const成員函數(shù)

3.取地址及const取地址操作符重載


?

????????????????????????????????????????????????????????????????時光不語,我們都在努力

這里是來自M--Y的專欄:C++啟航

以下內(nèi)容均為個人見解,如有不足還請指出

期待大家的點贊、收藏、評論(互三必回)諸君共勉

類中的6個默認成員函數(shù)

1.賦值運算符重載

1.1運算符重載

?????????運算符重載提高代碼可讀性。函數(shù)命名為關(guān)鍵字operator后面接需要重載的運算符符號

特別注意:

????????1.不能通過連接其他符號來創(chuàng)建新的操作符,如operator@

? ? ? ? 2.重載操作符必須有一個類類型參數(shù)

? ? ? ? 3.用于內(nèi)置類型的運算符,其含義不能改變

? ? ? ? 4.作為類成員函數(shù)重載時,其形參看起來比操作數(shù)數(shù)目少1,這是因為成員函數(shù)的第一個參數(shù)是隱式的this

? ? ? ? 5..*? ? ? ? ::? ? ? ? sizeof? ? ? ? ?;? ? ? ? .這五個運算符不支持重載

class Date

{

public:

? ? ? ?// ……

private:

? ? ? ? int? _year;

? ? ? ? int? _month;

? ? ? ? int? _day;

}?

bool??operator==(const? Date& d1,const? Date& d2)

{

? ? ? ? //……

}

如果和上述代碼一樣定義成全局函數(shù)的話,就無法訪問到Date類中的私有成員變量,如果要使代碼編譯通過的話,就必須將上述代碼標(biāo)紅處給注釋掉。

這樣處理的話,顯得過于麻煩,所以不如將函數(shù)封裝成成員函數(shù)。

封裝成成員函數(shù)的時候我們需要注意一點,上面注意4提到,成員函數(shù)的第一個參數(shù)是隱式的this所以在代碼上要做些許調(diào)整。

class Date

{

public:

? ? ? ? bool operator==(const Date& d)

? ? ? ? {

? ? ? ? ? ? ? ? return _year==d._year

? ? ? ? ? ? ? ? &&_month=d._month

? ? ? ? ? ? ? ? &&_day==d._month;

????????}

private:

? ? ? ? int _year;

? ? ? ? int _month;

? ? ? ? int _day;

} ;

1.2賦值運算符重載

1.2.1賦值運算符重載格式

? ? ? ? 1.參數(shù)類型:const T&(傳遞引用可以提高傳參效率)

? ? ? ? 2.返回值類型:T&。返回引用可以提高效率,同時在有些情況下可以支持連續(xù)賦值

? ? ? ? 3.檢測是否自己給自己賦值

? ? ? ? 4.返回*this。目的:連續(xù)賦值,下文會細講

1.2.2賦值運算符只能重載成成員函數(shù)不能重載成全局函數(shù)?

原因:如果用戶將賦值運算符實現(xiàn)成全局的話,編譯器就會自己生成一個默認的成員函數(shù),這樣兩者就會產(chǎn)生沖突了

class Date

{

public:

? ? ? ? //……

? ? ? ? Date& operator=(const Date&d)

? ? ? ? {

? ? ? ? ? ? ? ? _year=d._year;

? ? ? ? ? ? ? ? _month=d._month;

? ? ? ? ? ? ? ? _day=d._day;?

????????????????

? ? ? ? ? ? ? ? return *this;

? ? ? ? }

};

1.2.3同拷貝函數(shù)一樣,如果類是形如日期類這樣變量全是內(nèi)置類型的,賦值運算符就必須自己實現(xiàn),用編譯器默認生成的就行,但是如果涉及到資源管理就必須要自己實現(xiàn)賦值運算符。

1.3前置++和后置++重載

思考:由上面敘述可以聯(lián)想到關(guān)于++的運算符重載的函數(shù)名應(yīng)該是operator++,但是這樣的話如何區(qū)分前置++和后置++呢?

為了區(qū)分,C++特別規(guī)定:后置++重載時多加一個int類型的參數(shù),但是調(diào)用時不用傳參,編譯器會自動傳遞。

//前置++

Date& operator++()?

{

? ? ? ? _day++;

? ? ? ? _month++;

? ? ? ? _year++;

? ? ? ? if(_day>GetMonthday())//實現(xiàn)輸出某年某月的天數(shù)

? ? ? ? {

? ? ? ? ? ? ? ? _day-=GetMonthday();

? ? ? ? ? ? ? ? _month++

????????}

? ? ? ? if(_month>=13)

? ? ? ? {

? ? ? ? ? ? ? ? _month-=12;

? ? ? ? ? ? ? ? _year++;

????????}

? ? ? ? return *this;

}

后置++

//注意后置++是先是有后+1,因此需要一個臨時變量來保存原來的值,所以函數(shù)的返回值應(yīng)該是Date而不是Date&

Date operator++(int)

{

? ? ? ? Date temp=*this;

? ? ? ? //重復(fù)上述前置++步驟

? ? ? ? return temp;

}?

?其實關(guān)于運算符的重載有很多+=,-=,+,-,>,<,>=,<=。但是如果每個運算符都按上述方式代碼就會顯得十分冗長。有沒有什么辦法呢?? ? ? ? 答案是肯定的。

Date& Date:: operator+=(int day)//日期+天數(shù)=日期
{
?? ?_day += day;

?? ?while (_day > GetMonthDay(_year, _month))
?? ?{
?? ??? ?_day -= GetMonthDay(_year, _month);
?? ??? ?_month++;
?? ??? ?if (_month == 13)
?? ??? ?{
?? ??? ??? ?_year++;
?? ??? ??? ?_month = 1;
?? ??? ?}
?? ?}

?? ?while (_day < 0)
?? ?{
?? ??? ?_month--;
?? ??? ?if (_month == 0)
?? ??? ?{
?? ??? ??? ?_year--;
?? ??? ??? ?_month = 12;
?? ??? ?}
?? ??? ?_day += GetMonthDay(_year, _month);
?? ?}

?? ?return *this;
}

以上上+=為例,當(dāng)我們實現(xiàn)一個運算符重載后,和它相關(guān)的運算符重載就會變得很簡單實現(xiàn),只需要進行復(fù)用就行?。

Date& operator-=(int day)//日期-天數(shù)=日期

{

? ? ? ? return *this+=-day

}

?Date& operator++()

{

? ? ? return *this+=1;

}

Date operator++(int)

{

? ? ? ? Date temp=*this;

? ? ? ? *this+=1;

? ? ? ? return temp;

}?

?其他的運算符重載也和這類似,感興趣的可以自己去嘗試實現(xiàn)。

2.const成員函數(shù)

用cosnt修飾的成員函數(shù)被稱為const函數(shù),實際上const修飾的是成員函數(shù)中的this,但是一般const修飾變量會加在其前面,而this是隱式的,如何表示修飾的是this呢?

C++規(guī)定將cosnt+在函數(shù)后面,就表示對this的修飾。

Date operator+(int day) const

{

? ? ? ? //……

}

3.取地址及const取地址操作符重載

這兩個函數(shù)一般不用重新定義,不是特殊情況,編譯器會自動生成的夠用。

Date* operator&()

{

? ? ? ? return this;

}

const Date* operator&() const

{

? ? ? ? return this;

}

?

http://www.risenshineclean.com/news/42026.html

相關(guān)文章:

  • 寧波市有哪些網(wǎng)站建設(shè)公司湖北網(wǎng)絡(luò)推廣公司
  • 怎樣做醫(yī)療保健網(wǎng)站網(wǎng)絡(luò)營銷常用的工具和方法
  • 源碼怎樣做網(wǎng)站深圳推廣公司哪家正規(guī)
  • 男女做羞羞事網(wǎng)站現(xiàn)在學(xué)seo課程多少錢
  • 觸屏版手機網(wǎng)站鄭州網(wǎng)站運營實力樂云seo
  • 免費網(wǎng)站app軟件億驅(qū)動力競價托管
  • 多個織夢dedecms網(wǎng)站怎么做站群抖音搜索引擎優(yōu)化
  • wordpress 無法登錄寧波seo快速優(yōu)化教程
  • 沈陽奇搜建站廣東seo快速排名
  • 網(wǎng)站面包屑導(dǎo)航代碼網(wǎng)站seo專員招聘
  • 廣州市政府門戶網(wǎng)站本地服務(wù)推廣平臺哪個好
  • cpanel wordpressseo sem是指什么意思
  • 如何做視頻網(wǎng)站的廣告推廣網(wǎng)站平臺做推廣
  • 公司網(wǎng)站設(shè)計意見百度搜索排名購買
  • 申請自助網(wǎng)站深圳網(wǎng)站設(shè)計專業(yè)樂云seo
  • 四川省的建設(shè)廳注冊中心網(wǎng)站首頁怎么創(chuàng)建自己的網(wǎng)站平臺
  • 網(wǎng)站建設(shè)費應(yīng)計入什么科目網(wǎng)站優(yōu)化排名軟件哪些最好
  • 羅湖網(wǎng)站建設(shè)公司上海高端網(wǎng)站建設(shè)
  • 哪個網(wǎng)站可以做免費請?zhí)W(wǎng)頁設(shè)計與制作期末作品
  • 變態(tài)傳奇手游網(wǎng)頁優(yōu)化公司
  • 鹽城網(wǎng)站平臺建設(shè)百度網(wǎng)盤網(wǎng)頁版
  • 網(wǎng)站改備案信息嗎最新的疫情信息
  • 銅山網(wǎng)站建設(shè)seo基本步驟
  • 網(wǎng)頁設(shè)計制作網(wǎng)站模板免費簡述seo和sem的區(qū)別
  • 專業(yè)網(wǎng)站建站公司合肥網(wǎng)站設(shè)計
  • 邢臺地區(qū)網(wǎng)站建設(shè)個人怎么在百度上做推廣
  • 每天做特賣的網(wǎng)站是哪個關(guān)鍵詞優(yōu)化推廣排名
  • 蘇州企業(yè)網(wǎng)站seo怎么關(guān)閉seo綜合查詢
  • 聊城做網(wǎng)站最好的網(wǎng)絡(luò)公司網(wǎng)絡(luò)宣傳方案
  • 無限制的網(wǎng)站訪問網(wǎng)站推廣的具體方案