版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C+語言程序設(shè)計第十一組C+語言程序設(shè)計第九章 類的特殊成員C+語言程序設(shè)計1C+語言程序設(shè)計2基本知識a9.5 運算符重載 運算符重載 是C+的一個特性,使得程序員可以把C+的運算符擴(kuò)展到用戶自定義的類類型中 C+中預(yù)定義的運算符,如+、=、等,其操作對象只能是基本數(shù)據(jù)類型,對于很多用戶自定義類型,也需要類似的運算操作 使用運算符重載可以使C+代碼更直觀、易懂,函數(shù)調(diào)用更方便、簡潔 運算符重載的實質(zhì)就是函數(shù)重載 對已有的運算符賦予多重含義,使同一運算符作用于不同類型的數(shù)據(jù)時發(fā)生不同的行為C+語言程序設(shè)計39.5 運算符重載 例:使用字符串處理函數(shù)完成字符串的復(fù)制和連接C+語言程序設(shè)計4/使用
2、字符串處理函數(shù)復(fù)制和連接字符串使用字符串處理函數(shù)復(fù)制和連接字符串#include #include using namespace std;void main() char *s1=Hello; char *s2=world; char s380 =; strcpy(s3,s1); /字符串復(fù)制字符串復(fù)制 couts3endl; strcat(s3,s2); /字符串連接字符串連接 couts3endl;9.5 運算符重載 例:使用重載運算符“=”和“+”完成字符串的復(fù)制和連接C+語言程序設(shè)計5/使用重載運算符復(fù)制和連接字符串使用重載運算符復(fù)制和連接字符串#include #include u
3、sing namespace std;void main() string s1=Hello; string s2=world; string s3; s3=s1; /字符串復(fù)制字符串復(fù)制 couts3endl; s3=s1+s2; /字符串連接字符串連接 couts3endl;9.5 運算符重載 運算符重載的規(guī)則 重載運算符時,運算符的運算順序和優(yōu)先級不變,操作數(shù)個數(shù)不變 不能創(chuàng)造新的運算符,只能重載C+中已有的運算符,并且規(guī)定有6個運算符不能重載 一般來講,重載后的運算符的功能應(yīng)當(dāng)與運算符的實際意義相符C+語言程序設(shè)計6運運 算算 符符含含 義義.類屬關(guān)系運算符類屬關(guān)系運算符.*成員指針運
4、算符成員指針運算符:作用域運算符作用域運算符?:條件運算符條件運算符#編譯預(yù)處理符號編譯預(yù)處理符號sizeof取數(shù)據(jù)類型的長度取數(shù)據(jù)類型的長度9.5 運算符重載 運算符重載的形式: 重載為類的成員函數(shù) 函數(shù)定義可以放在類的聲明中,也可以在類聲明的外部 類外定義的形式為:函數(shù)類型 類名:operator 運算符(形參表) 函數(shù)體 重載為類的友元函數(shù) 類的聲明中需要聲明該函數(shù)為友元函數(shù):friend 函數(shù)類型 operator 運算符(形參表); 函數(shù)定義必須在類的外部,形式為:函數(shù)類型 operator 運算符(形參表) 函數(shù)體 C+語言程序設(shè)計79.5 運算符重載 關(guān)于運算符重載定義的幾點說明
5、 函數(shù)類型指明了重載運算符的返回值類型,也就是運算結(jié)果類型 operator是定義運算符重載的關(guān)鍵字 “運算符”即要重載的運算符名稱 形參表給出的是運算符需要的操作數(shù) 重載為成員函數(shù):對象本身就是其中的一個操作數(shù),形參表內(nèi)參數(shù)的數(shù)目比操作數(shù)的數(shù)目少一個 重載為友元函數(shù):每個形參代表運算符的一個操作數(shù),形參表內(nèi)參數(shù)的數(shù)目等同于操作數(shù)的數(shù)目C+語言程序設(shè)計8 例:創(chuàng)建一個復(fù)數(shù)類,將+、+=運算符重載為成員函數(shù)9.5 運算符重載C+語言程序設(shè)計9/創(chuàng)建一個復(fù)數(shù)類,將創(chuàng)建一個復(fù)數(shù)類,將+、+=運算符重載為成員函數(shù)運算符重載為成員函數(shù)#include #include using namespace s
6、td;class complexpublic: complex(double real=0,double imag=0): r(real),i(imag) complex operator +(complex&);/重載運算符的函數(shù)原型重載運算符的函數(shù)原型 complex operator -(complex&); complex& operator +=(complex&); void print() coutsetiosflags(ios:showpos)r iiendl;private: double r , i;9.5 運算符重載C+語言程序設(shè)計10co
7、mplex complex:operator +(complex& c)/重載重載“+”運算符運算符 return complex(r+c.r,i+c.i);complex complex:operator -(complex& c)/重載重載“-”運算符運算符 return complex(r-c.r,i-c.i);Complex& complex:operator +=(complex& c)/重載重載“+=”運算符運算符 r+=c.r; i+=c.i; return *this;9.5 運算符重載C+語言程序設(shè)計11void main() complex
8、c1(1,1),c2(3,3),c3; c3=c1+c2; /復(fù)數(shù)相加復(fù)數(shù)相加 c3.print(); c3=c1-c2; /復(fù)數(shù)相減復(fù)數(shù)相減 c3.print(); c3+=c2+=c1; /復(fù)數(shù)相加后賦值復(fù)數(shù)相加后賦值 c3.print(); 例:創(chuàng)建一個復(fù)數(shù)類,將+、+=運算符重載為友元函數(shù)9.5 運算符重載C+語言程序設(shè)計12/創(chuàng)建一個復(fù)數(shù)類,將創(chuàng)建一個復(fù)數(shù)類,將+、+=運算符重載為成員函數(shù)運算符重載為成員函數(shù)#include #include using namespace std;class complexpublic: complex(double real=0,double i
9、mag=0): r(real),i(imag) friend complex operator +(complex&,complex&); friend complex operator -(complex&,complex&); friend complex& operator +=(complex&,complex&); void print() coutsetiosflags(ios:showpos)r iiendl;private: double r , i;9.5 運算符重載C+語言程序設(shè)計13complex operator
10、+(complex& c1,complex& c2) /重載重載“+”運算符運算符 return complex(c1.r+c2.r,c1.i+c2.i);complex operator -(complex& c1,complex& c2) /重載重載“-”運算符運算符 return complex(c1.r-c2.r,c1.i-c2.i);complex& operator +=(complex& c1,complex& c2) /重載重載“+=”運算符運算符 c1.r+=c2.r; c1.i+=c2.i; return c1;9.5 運
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024水井承包工程合作協(xié)議書(含水質(zhì)監(jiān)測)3篇
- 陜西省渭南市2025年中考語文模擬試卷二套【附參考答案】
- 2024年飯店運營合作承包合同稿版
- 2不一樣的你我他 說課稿-2023-2024學(xué)年道德與法治三年級下冊統(tǒng)編版
- 2024年計算機(jī)維修服務(wù)保密協(xié)議范本版B版
- 11 空氣占據(jù)空間嗎 說課稿-2023-2024學(xué)年科學(xué)三年級下冊人教鄂教版
- 18古詩三首 江南春 說課稿-2024-2025學(xué)年語文六年級上冊統(tǒng)編版
- 2024年飛機(jī)購置合同范本
- 2025年度智慧農(nóng)業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用合同范本2篇
- 2024年版商業(yè)毛坯房租賃協(xié)議樣例版B版
- 常用靜脈藥物溶媒的選擇
- 當(dāng)代西方文學(xué)理論知到智慧樹章節(jié)測試課后答案2024年秋武漢科技大學(xué)
- 2024年預(yù)制混凝土制品購銷協(xié)議3篇
- 2024年中國陶瓷碗盆市場調(diào)查研究報告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專業(yè)解讀與應(yīng)用實踐指導(dǎo)材料之22:“8運行-8.1運行策劃和控制”(雷澤佳編制-2025B0)
- 2024-2030年中國高端私人會所市場競爭格局及投資經(jīng)營管理分析報告
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 單位網(wǎng)絡(luò)安全攻防演練
- 2024年中國心力衰竭診斷和治療指南2024版
- HCCDP 云遷移認(rèn)證理論題庫
- 日常物業(yè)管理服務(wù)流程圖
評論
0/150
提交評論