




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、C+語言程序設計第十一組C+語言程序設計第九章 類的特殊成員C+語言程序設計1C+語言程序設計2基本知識a9.5 運算符重載 運算符重載 是C+的一個特性,使得程序員可以把C+的運算符擴展到用戶自定義的類類型中 C+中預定義的運算符,如+、=、等,其操作對象只能是基本數(shù)據(jù)類型,對于很多用戶自定義類型,也需要類似的運算操作 使用運算符重載可以使C+代碼更直觀、易懂,函數(shù)調(diào)用更方便、簡潔 運算符重載的實質(zhì)就是函數(shù)重載 對已有的運算符賦予多重含義,使同一運算符作用于不同類型的數(shù)據(jù)時發(fā)生不同的行為C+語言程序設計39.5 運算符重載 例:使用字符串處理函數(shù)完成字符串的復制和連接C+語言程序設計4/使用
2、字符串處理函數(shù)復制和連接字符串使用字符串處理函數(shù)復制和連接字符串#include #include using namespace std;void main() char *s1=Hello; char *s2=world; char s380 =; strcpy(s3,s1); /字符串復制字符串復制 couts3endl; strcat(s3,s2); /字符串連接字符串連接 couts3endl;9.5 運算符重載 例:使用重載運算符“=”和“+”完成字符串的復制和連接C+語言程序設計5/使用重載運算符復制和連接字符串使用重載運算符復制和連接字符串#include #include u
3、sing namespace std;void main() string s1=Hello; string s2=world; string s3; s3=s1; /字符串復制字符串復制 couts3endl; s3=s1+s2; /字符串連接字符串連接 couts3endl;9.5 運算符重載 運算符重載的規(guī)則 重載運算符時,運算符的運算順序和優(yōu)先級不變,操作數(shù)個數(shù)不變 不能創(chuàng)造新的運算符,只能重載C+中已有的運算符,并且規(guī)定有6個運算符不能重載 一般來講,重載后的運算符的功能應當與運算符的實際意義相符C+語言程序設計6運運 算算 符符含含 義義.類屬關系運算符類屬關系運算符.*成員指針運
4、算符成員指針運算符:作用域運算符作用域運算符?:條件運算符條件運算符#編譯預處理符號編譯預處理符號sizeof取數(shù)據(jù)類型的長度取數(shù)據(jù)類型的長度9.5 運算符重載 運算符重載的形式: 重載為類的成員函數(shù) 函數(shù)定義可以放在類的聲明中,也可以在類聲明的外部 類外定義的形式為:函數(shù)類型 類名:operator 運算符(形參表) 函數(shù)體 重載為類的友元函數(shù) 類的聲明中需要聲明該函數(shù)為友元函數(shù):friend 函數(shù)類型 operator 運算符(形參表); 函數(shù)定義必須在類的外部,形式為:函數(shù)類型 operator 運算符(形參表) 函數(shù)體 C+語言程序設計79.5 運算符重載 關于運算符重載定義的幾點說明
5、 函數(shù)類型指明了重載運算符的返回值類型,也就是運算結(jié)果類型 operator是定義運算符重載的關鍵字 “運算符”即要重載的運算符名稱 形參表給出的是運算符需要的操作數(shù) 重載為成員函數(shù):對象本身就是其中的一個操作數(shù),形參表內(nèi)參數(shù)的數(shù)目比操作數(shù)的數(shù)目少一個 重載為友元函數(shù):每個形參代表運算符的一個操作數(shù),形參表內(nèi)參數(shù)的數(shù)目等同于操作數(shù)的數(shù)目C+語言程序設計8 例:創(chuàng)建一個復數(shù)類,將+、+=運算符重載為成員函數(shù)9.5 運算符重載C+語言程序設計9/創(chuàng)建一個復數(shù)類,將創(chuàng)建一個復數(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+語言程序設計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+語言程序設計11void main() complex
8、c1(1,1),c2(3,3),c3; c3=c1+c2; /復數(shù)相加復數(shù)相加 c3.print(); c3=c1-c2; /復數(shù)相減復數(shù)相減 c3.print(); c3+=c2+=c1; /復數(shù)相加后賦值復數(shù)相加后賦值 c3.print(); 例:創(chuàng)建一個復數(shù)類,將+、+=運算符重載為友元函數(shù)9.5 運算符重載C+語言程序設計12/創(chuàng)建一個復數(shù)類,將創(chuàng)建一個復數(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+語言程序設計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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升食品安全意識的對策試題及答案
- 生態(tài)保護項目協(xié)議
- 理論與實踐結(jié)合的設計師考題試題及答案
- 栽培技術對園藝植物生長的影響試題及答案
- 匯聚智慧的2024花藝師考試試題及答案
- 理解客戶需求的有效溝通試題及答案
- 2024年統(tǒng)計思維提升試題及答案
- 學科交叉知識點農(nóng)藝師試題及答案
- Unit 1 Section B 1a-1d教學設計 2024-2025學年人教版(2024)七年級英語上冊
- 醫(yī)防融合試點方案落地實施
- 內(nèi)科學肺炎(課件)
- 左拉精選課件
- 國際外貿(mào)模板:裝箱單
- LY/T 1831-2009人造板飾面專用裝飾紙
- 檢驗科標本采集手冊(新版)
- 人力資源開發(fā)與管理-自考課件
- 第7課《大雁歸來》課件(共41張PPT) 部編版語文八年級下冊
- 農(nóng)業(yè)面源污染進展課件
- DB44-T 2267-2021《公共機構(gòu)能源資源消耗限額》-(高清現(xiàn)行)
- 廣東省韶關市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細
- 挖掘機使用臺班記錄表
評論
0/150
提交評論