




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、使用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言C、電子科技大學(xué)電腦學(xué)院、第1、5章運(yùn)算符重載和編程語(yǔ)言編寫(xiě)程序時(shí),不僅要設(shè)計(jì)新的數(shù)據(jù)類型,還要設(shè)計(jì)新類型的計(jì)算。通常,自定義類型的所有運(yùn)算都以函數(shù)方式實(shí)現(xiàn)。一般來(lái)說(shuō),一種茄子類型的運(yùn)算都用運(yùn)算符表示,這很直觀,意義也很簡(jiǎn)單。但是,如果在自定義類型的正上方使用操作符,編譯器將無(wú)法識(shí)別操作符的含義。因此,牙齒需要特殊的機(jī)制來(lái)復(fù)蓋作用于自定義類型的常規(guī)運(yùn)算符的含義。這就是運(yùn)算符重載簡(jiǎn)單的概念。第二、五章運(yùn)算符重載,事實(shí)上C編譯器里已經(jīng)有了簡(jiǎn)單的運(yùn)算符重載概念??紤]整數(shù)和浮點(diǎn)兩個(gè)茄子加法運(yùn)算。int a=1,b;B=a2Float c=1.0,d;D=c 2.0上述兩個(gè)加法語(yǔ)
2、句都使用了運(yùn)算符 。這符合我們的數(shù)學(xué)常識(shí)。但是,對(duì)于C編譯器,兩個(gè)牙齒的加法被翻譯成另一個(gè)指令。也就是說(shuō),“”運(yùn)算符至少有兩個(gè)茄子不同的解釋(實(shí)現(xiàn)代碼)。牙齒時(shí),我們說(shuō)“”運(yùn)算符重載。不幸的是,c只支持少量運(yùn)算符重載。3、5章運(yùn)算符重載和C擴(kuò)展了C運(yùn)算符重載功能,允許現(xiàn)有字典定義的運(yùn)算符在其他上下文中有不同的解釋。兩個(gè)字符串類連接在一起時(shí),class string public 3360 string string _ cat(string);String str1、str2、str3str 3=str 1 . string _ cat(str 2);第4、5章運(yùn)算符重載,顯然這不像str3=
3、str1 str2那么簡(jiǎn)單。但問(wèn)題是,C編譯器只知道運(yùn)算符作用于整數(shù)和浮點(diǎn)數(shù)據(jù)上,而不知道運(yùn)算符在上面的確切含義。因此,設(shè)計(jì)類String時(shí),必須增加運(yùn)算符的含義。通過(guò)這種方式,意義變得更明確、更容易理解。第、5、5章說(shuō)明了基于預(yù)定義運(yùn)算符的語(yǔ)義,對(duì)用戶定義類型的對(duì)象添加了操作的新語(yǔ)義。這是運(yùn)算符重載。運(yùn)算符重載后優(yōu)先級(jí)和結(jié)合性不變。第6,5章引文,考慮復(fù)數(shù)加法計(jì)算:class Complex double re,im;Public : complex(雙r,雙im)re=r;im=I;complex()re=0.0;Im=0.0complex add _ complex(complex c)
4、complex temp;temp . re=re c . re;temp . im=im c . im;Return temp。7,/整個(gè)函數(shù)體也可以簡(jiǎn)化為return Complex(re c.re,im c.im)。第5章簡(jiǎn)介,voidmain () complex obj1 (1,2),obj2 (3,4);complex obj 3=obj 1 . add _ complex(obj 2);兩個(gè)復(fù)數(shù)加起來(lái)能表示成obj1 obj2嗎?第9章5.1重載操作符C提供了對(duì)自定義類型使用標(biāo)準(zhǔn)定義操作符的方法。這稱為運(yùn)算符重載。在c規(guī)則中,如果成員函數(shù)函數(shù)名稱特別,則由關(guān)鍵字operator和
5、運(yùn)算符(例如operator)組成。Obj1.operator (obj2)是一種稱為函數(shù)operator()的顯示調(diào)用格式。Obj1 obj2稱為函數(shù)operator()的隱式調(diào)用格式。函數(shù)操作員()稱為運(yùn)算符重載函數(shù)。第10,5章引文,考慮復(fù)數(shù)加法運(yùn)算:class Complex double re,im;Public : complex(雙r,雙im)re=r;im=I;complex()re=0.0;Im=0.0complex operator(complex c)complex temp:temp . re=re c . re;temp . im=im c . im;Return t
6、emp。第11,5章介紹,5.1重載運(yùn)算符voidmain () complex obj1 (1,2),obj2 (3,4);Complex obj3=obj1。obj2Obj1 obj2是obj1.operator (obj2)、12、5章簡(jiǎn)介,5.1.1運(yùn)算符重載語(yǔ)法格式在C中,運(yùn)算符通過(guò)一個(gè)運(yùn)算符重載函數(shù)重載。參數(shù)可以使用兩種茄子重載方法:成員函數(shù)和運(yùn)算符重載函數(shù)。語(yǔ)法如下:(1)運(yùn)算符重載函數(shù)成員函數(shù)語(yǔ)法格式為type class _ Name 3360: operator(表)/class _ name類定義的作業(yè)中,第13章,第5章介紹,5.1.1運(yùn)算符重載語(yǔ)法格式(2).*,第1
7、5章,5.1.2重載運(yùn)算符規(guī)則(2)說(shuō)明只能重載現(xiàn)有C運(yùn)算符。(3)重新加載運(yùn)算符時(shí),不能更改優(yōu)先級(jí)、更改連接性或更改運(yùn)算符所需的操作數(shù)。(4)重新加載運(yùn)算符的函數(shù)不能具有基本參數(shù)。否則,操作符所需的操作數(shù)將更改。第、16、5章介紹了5.1.2重載運(yùn)算符規(guī)則(5)重載運(yùn)算符必須與自定義類型的對(duì)象一起使用,其中至少有一個(gè)參數(shù)應(yīng)用程序節(jié)目必須是類對(duì)象(或類對(duì)象的引用)。(6)類對(duì)象中使用的運(yùn)算符通常必須重載,分配運(yùn)算符=和地址運(yùn)算符朋友函數(shù)重載Class_Nam operator (Class_Nam,25,5章介紹,5.1重載運(yùn)算符5.1.4重載和函數(shù)重載Class_Nam operator通常顯示為零。(示例5-11/12),第26,5章可以重新加載5.1重載操作符5.1.5重載分配操作符“=”,用戶可以定義所需的重載“=”運(yùn)算符重載函數(shù)。重載運(yùn)算符函數(shù)operator=無(wú)法繼承,成員函數(shù)(常規(guī)重載格式:x x 3360: operator=(const x intsize;public 3360 array(i
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)全體職工勞動(dòng)合同范本
- 廚師短期合同范本
- 原木收購(gòu)出售合同范本
- 合同范本建立流程
- 廚房顧問(wèn)合同范本
- 商用商鋪?zhàn)赓U合同范本
- 二房東門(mén)面出租合同范本
- 賣買(mǎi)房協(xié)議合同范本
- 名師帶高徒合同范本
- 以公司名義合同范本
- Unit1DiscoveringUsefulStructures課件-高中英語(yǔ)人教版選擇性必修第三冊(cè)
- 第一講酒吧的類型及特征
- JJF 1071-2010國(guó)家計(jì)量校準(zhǔn)規(guī)范編寫(xiě)規(guī)則
- GB/T 28906-2012冷鐓鋼熱軋盤(pán)條
- GB/T 24803.4-2013電梯安全要求第4部分:評(píng)價(jià)要求
- GB/T 1348-1988球墨鑄鐵件
- 獻(xiàn)給媽媽的愛(ài)doc資料
- Unit 4 History and Traditions Reading and thinking 課件- 高中英語(yǔ)人教版(2019)必修第二冊(cè)
- 世界文明與世界宗教課件
- JCI醫(yī)院評(píng)審標(biāo)準(zhǔn)-
- 北師大版二年級(jí)數(shù)學(xué)下冊(cè)導(dǎo)學(xué)案全冊(cè)
評(píng)論
0/150
提交評(píng)論