




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、使用面向?qū)ο蟪绦蛟O(shè)計(jì)語言C、電子科技大學(xué)電腦學(xué)院、第1、5章運(yùn)算符重載和編程語言編寫程序時(shí),不僅要設(shè)計(jì)新的數(shù)據(jù)類型,還要設(shè)計(jì)新類型的計(jì)算。通常,自定義類型的所有運(yùn)算都以函數(shù)方式實(shí)現(xiàn)。一般來說,一種茄子類型的運(yùn)算都用運(yùn)算符表示,這很直觀,意義也很簡單。但是,如果在自定義類型的正上方使用操作符,編譯器將無法識別操作符的含義。因此,牙齒需要特殊的機(jī)制來復(fù)蓋作用于自定義類型的常規(guī)運(yùn)算符的含義。這就是運(yùn)算符重載簡單的概念。第二、五章運(yùn)算符重載,事實(shí)上C編譯器里已經(jīng)有了簡單的運(yùn)算符重載概念??紤]整數(shù)和浮點(diǎn)兩個(gè)茄子加法運(yùn)算。int a=1,b;B=a2Float c=1.0,d;D=c 2.0上述兩個(gè)加法語
2、句都使用了運(yùn)算符 。這符合我們的數(shù)學(xué)常識。但是,對于C編譯器,兩個(gè)牙齒的加法被翻譯成另一個(gè)指令。也就是說,“”運(yùn)算符至少有兩個(gè)茄子不同的解釋(實(shí)現(xiàn)代碼)。牙齒時(shí),我們說“”運(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那么簡單。但問題是,C編譯器只知道運(yùn)算符作用于整數(shù)和浮點(diǎn)數(shù)據(jù)上,而不知道運(yùn)算符在上面的確切含義。因此,設(shè)計(jì)類String時(shí),必須增加運(yùn)算符的含義。通過這種方式,意義變得更明確、更容易理解。第、5、5章說明了基于預(yù)定義運(yùn)算符的語義,對用戶定義類型的對象添加了操作的新語義。這是運(yùn)算符重載。運(yùn)算符重載后優(yōu)先級和結(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ù)體也可以簡化為return Complex(re c.re,im c.im)。第5章簡介,voidmain () complex obj1 (1,2),obj2 (3,4);complex obj 3=obj 1 . add _ complex(obj 2);兩個(gè)復(fù)數(shù)加起來能表示成obj1 obj2嗎?第9章5.1重載操作符C提供了對自定義類型使用標(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章簡介,5.1.1運(yùn)算符重載語法格式在C中,運(yùn)算符通過一個(gè)運(yùn)算符重載函數(shù)重載。參數(shù)可以使用兩種茄子重載方法:成員函數(shù)和運(yùn)算符重載函數(shù)。語法如下:(1)運(yùn)算符重載函數(shù)成員函數(shù)語法格式為type class _ Name 3360: operator(表)/class _ name類定義的作業(yè)中,第13章,第5章介紹,5.1.1運(yùn)算符重載語法格式(2).*,第1
7、5章,5.1.2重載運(yùn)算符規(guī)則(2)說明只能重載現(xiàn)有C運(yùn)算符。(3)重新加載運(yùn)算符時(shí),不能更改優(yōu)先級、更改連接性或更改運(yùn)算符所需的操作數(shù)。(4)重新加載運(yùn)算符的函數(shù)不能具有基本參數(shù)。否則,操作符所需的操作數(shù)將更改。第、16、5章介紹了5.1.2重載運(yùn)算符規(guī)則(5)重載運(yùn)算符必須與自定義類型的對象一起使用,其中至少有一個(gè)參數(shù)應(yīng)用程序節(jié)目必須是類對象(或類對象的引用)。(6)類對象中使用的運(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=無法繼承,成員函數(shù)(常規(guī)重載格式:x x 3360: operator=(const x intsize;public 3360 array(i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年高考語文作文模擬題4篇
- 2025年晉中市稅務(wù)系統(tǒng)遴選面試真題帶詳解含答案
- 綿竹市文職輔警招聘考試真題
- 臨沂市費(fèi)縣文職輔警招聘考試真題
- 海洋企業(yè)品牌形象塑造
- 老年護(hù)理講課課件
- 老年護(hù)理便秘課件教學(xué)
- 老年健康講座課件
- 2025年百貨商業(yè)市場調(diào)查報(bào)告
- 2025年安全門行業(yè)市場趨勢分析報(bào)告
- 食品化學(xué)課件
- 國家統(tǒng)計(jì)局征信行業(yè)報(bào)告
- 不良資產(chǎn)盡職調(diào)查工作底稿表
- 甩手運(yùn)動(dòng)原理課題研究報(bào)告
- 皮膚腫物培訓(xùn)演示課件
- 糖尿病胃輕癱的護(hù)理查房課件
- 冬蟲夏草的人工栽培程序
- 太陽完整分享
- 多孔硅酸鈣材料的制備
- (完整)工程竣工驗(yàn)收單-范本
- 游戲俱樂部群公告范本
評論
0/150
提交評論