函數(shù)重載與運(yùn)算符重載的應(yīng)用研究

上傳人:zhan****gclb 文檔編號(hào):82815400 上傳時(shí)間:2022-04-30 格式:DOCX 頁數(shù):3 大?。?4.03KB
收藏 版權(quán)申訴 舉報(bào) 下載
函數(shù)重載與運(yùn)算符重載的應(yīng)用研究_第1頁
第1頁 / 共3頁
函數(shù)重載與運(yùn)算符重載的應(yīng)用研究_第2頁
第2頁 / 共3頁
函數(shù)重載與運(yùn)算符重載的應(yīng)用研究_第3頁
第3頁 / 共3頁

最后一頁預(yù)覽完了!喜歡就下載吧,查找使用更方便

5 積分

下載資源

資源描述:

《函數(shù)重載與運(yùn)算符重載的應(yīng)用研究》由會(huì)員分享,可在線閱讀,更多相關(guān)《函數(shù)重載與運(yùn)算符重載的應(yīng)用研究(3頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、函數(shù)重載與運(yùn)算符重載的應(yīng)用研究 論文導(dǎo)讀:多態(tài)性是面向?qū)ο蟮某绦蛟O(shè)計(jì)中的三大基本特征(封裝性。多態(tài)性)之一。重載在C++中可分為兩種:函數(shù)重載和運(yùn)算符重載。運(yùn)算符重載實(shí)質(zhì)上就是函數(shù)重載。關(guān)鍵詞:面向?qū)ο?多態(tài)性,函數(shù)重載,運(yùn)算符重載1. 引言多態(tài)性是面向?qū)ο蟮某绦蛟O(shè)計(jì)中的三大基本特征(封裝性,繼承性,多態(tài)性)之一,其含義是指同一個(gè)消息被不同類型的對(duì)象接收時(shí)會(huì)導(dǎo)致不同的的行為實(shí)現(xiàn)。在C++中,多態(tài)性包括強(qiáng)制多態(tài)、重載多態(tài)、參數(shù)類型多態(tài)和包含多態(tài)四種。其中,重載是實(shí)現(xiàn)C++多態(tài)性的一種重要機(jī)制,稱為重載多態(tài),即為程序正文中相同作用域內(nèi)的的同一個(gè)標(biāo)識(shí)符賦予不同的操作語義,實(shí)質(zhì)上也就是實(shí)現(xiàn)了程序

2、空間到代碼空間的一對(duì)多映射。重載在C++中可分為兩種:函數(shù)重載和運(yùn)算符重載。2. 函數(shù)重載在程序編譯時(shí),讓相同的函數(shù)名映射到不同的函數(shù)代碼,稱為函數(shù)重載。在C++中,函數(shù)重載可以分別以普通函數(shù)和成員函數(shù)來實(shí)現(xiàn)。2.1 普通函數(shù)重載例1:#include int max(int x,int y){returnx>y?x:y;}//求2個(gè)整數(shù)的最大值int max(int x,int y,int z) //求3個(gè)整數(shù)的最大值{returnx>y?(x>z?x:z):(y>z?y:z);}void main( ){coutclass A{public:A( ): a(0){coutclass Com

3、plex //復(fù)數(shù)類{public:Complex(doublex,double y): real(x), imag(y) { }Complex operator++( )//前置增量運(yùn)算符'++'重載為成員函數(shù){++real; ++imag; return*this;}Complexoperator++(int)//后置增量運(yùn)算符'++'重載為成員函數(shù){Complex temp(*this);real++; imag++; return temp;}private:double real,imag;//實(shí)部、虛部};int main( ){ Complex c(1,2); }例3中聲明了一個(gè)

4、復(fù)數(shù)類Complex,其中有兩個(gè)私有數(shù)據(jù)成員,分別表示實(shí)部和虛部。主函數(shù)執(zhí)行時(shí),編譯器會(huì)自動(dòng)調(diào)用構(gòu)造函數(shù)創(chuàng)建對(duì)象c,即1+2i。在復(fù)數(shù)類Complex的聲明中,以成員函數(shù)方式分別對(duì)前置、后置增量運(yùn)算符這兩個(gè)單目運(yùn)算符進(jìn)行了重載,使得Complex類對(duì)象可以進(jìn)行前置、后置增量運(yùn)算。論文發(fā)表。值得注意的是兩者的區(qū)別,即后置增量運(yùn)算符的重載函數(shù)中多一個(gè)int形參,它沒有實(shí)際意義,只是為了區(qū)別于前置增量運(yùn)算符的重載函數(shù)。3.3 友元函數(shù)方式可以在例3復(fù)數(shù)類Complex的聲明中增加以下代碼:friend ostream&operator<<(ostream &output,Complex &c){ /

5、/流插入運(yùn)算符'<<'重載為友元函數(shù)output<

6、時(shí),首先++,編譯器的理解為c. operator++( ),即調(diào)用重載后的前置增量運(yùn)算符'++'函數(shù)。論文發(fā)表。論文發(fā)表。然后<<,編譯器的理解為operator<<(cout,c),即調(diào)用重載后的流插入運(yùn)算符'<<'函數(shù),輸出前置增量運(yùn)算后的對(duì)象c,形成結(jié)果中的第二行;③處執(zhí)行時(shí),首先++,編譯器的理解為c. operator++(int),即調(diào)用重載后的后置增量運(yùn)算符'++'函數(shù)。然后<<,編譯器的理解為operator<<(cout, c),即調(diào)用重載后的流插入運(yùn)算符'<<'函數(shù),輸出后置增量運(yùn)算后的對(duì)象c,形成結(jié)果中的第三行。3.4 類型轉(zhuǎn)換函數(shù)運(yùn)算符重載中還有一種比較特殊的是強(qiáng)制類

7、型轉(zhuǎn)換運(yùn)算符重載函數(shù),重載后成為類的特殊成員函數(shù),在適當(dāng)?shù)臅r(shí)候由編譯器自動(dòng)調(diào)用以實(shí)現(xiàn)類類型對(duì)象向普通數(shù)據(jù)類型數(shù)據(jù)的強(qiáng)制轉(zhuǎn)換。可繼續(xù)在例3 Complex類的聲明中增加以下代碼:operator double( ){return real;} //強(qiáng)制類型轉(zhuǎn)換運(yùn)算符重載為成員函數(shù)然后在主函數(shù)末尾增加一句:cout<<(c+5.0);此時(shí),編譯器首先執(zhí)行c+5.0,由于沒有對(duì)算術(shù)運(yùn)算符'+'進(jìn)行重載,所以編譯器只能調(diào)用剛剛增加的類型轉(zhuǎn)換函數(shù)operator double( )將Complex類對(duì)象c強(qiáng)制類型轉(zhuǎn)換成double類型,由于經(jīng)過了上述兩次增量運(yùn)算,此時(shí)對(duì)象c的實(shí)部real已經(jīng)等于3.0;然后與5.0相加,最后輸出結(jié)果為8.0。4. 結(jié)語以上對(duì)函數(shù)重載和運(yùn)算符重載的概念,用法和區(qū)別進(jìn)行了討論。重載的目的是為了實(shí)現(xiàn)表達(dá)方式共享,熟練地掌握并運(yùn)用重載,特別運(yùn)算符重載,可以有效地提高程序的可讀性,實(shí)現(xiàn)對(duì)C++語言本身的擴(kuò)充,同時(shí)也能更深刻地理解C++中多態(tài)性的實(shí)現(xiàn)機(jī)制。參考文獻(xiàn):[1] 錢能. C++程序設(shè)計(jì)教程[M]. 北京: 清華大學(xué)出版社, 1999[2] 曹計(jì)昌等著. C++語言及面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 北京: 高等教育出版社, 2004[3] 鄭莉, 董淵. C++語言程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社, 1999?

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!