c課件運算符重載和類重載.ppt
《c課件運算符重載和類重載.ppt》由會員分享,可在線閱讀,更多相關(guān)《c課件運算符重載和類重載.ppt(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第12章運算符重載和類型重載,主要內(nèi)容:12.1運算符重載規(guī)則12.2類型重載,在C++中有這樣的情況,同一個類型或運算符在不同的類中代表不同的意思或者實施不同的運算,這就是面向?qū)ο蟮娜筇攸c之一的多態(tài)。函數(shù)重載是C++語言中多態(tài)的一種表現(xiàn)形式,運算符重載和類型重載是多態(tài)的另外兩種表現(xiàn)形式。,運算符重載是對已有的運算符賦予多重含義。C++中預定義的運算符的操作對象只能是基本數(shù)據(jù)類型,對于很多用戶自定義類型,也需要有類似的運算操作,這就提出了對運算符進行重新定義,賦予已有符號以新功能的要求。同一個運算符作用于不同類型的數(shù)據(jù)導致不同的行為。,12.1運算符重載概述,運算符重載只能對系統(tǒng)提供的已有運算定義新的運算含義,不能創(chuàng)造全新的運算符,同時還不能改變運算符原有的語法結(jié)構(gòu)、操作數(shù)個數(shù)、優(yōu)先級和結(jié)合性,不能有二義性。不是所有的運算符都能重載,不能重載的運算符有:作用域運算符(::)、條件運算符(?:)、直接成員訪問運算符(.)、sizeof運算符、解除對指向類成員的指針的引用運算符(.*)。運算符重載的關(guān)鍵字是operator。針對一個具體類的已有運算符重載有兩種途徑:1)將運算符重新定義為類的成員函數(shù);2)將運算符重新定義為類的友元函數(shù)。,一、運算符重載方法,定義一個重載運算符就像定義一個函數(shù),只是該函數(shù)的名字是operator@,這里@代表運算符。函數(shù)參數(shù)表中參數(shù)的個數(shù)取決于兩個因素:1)運算符是一元的(一個參數(shù))還是二元的(兩個參數(shù))。2)運算符被定義為友元函數(shù)(對于一元是一個參數(shù),對于二元是兩個參數(shù))還是成員函數(shù)(對于一元沒有參數(shù),對于二元是一個參數(shù)—對象變?yōu)樽髠?cè)參數(shù))。,1.將運算符重載為類的成員函數(shù),將運算符重載為類的成員函數(shù)就是在類中用關(guān)鍵字operator定義一個成員函數(shù),函數(shù)名就是重載的運算符。運算符如果重載為類的成員函數(shù),它就可以自由地訪問該類的數(shù)據(jù)成員。運算符重載為類的成員函數(shù)的一般格式為:::operator(形參表){函數(shù)體}其中,類型為運算符重載函數(shù)的返回類型。類名為成員函數(shù)所屬類的類名,即為重載函數(shù)名。形參為參加運算的對象或數(shù)據(jù)。,【例題12.1】復數(shù)的加減運算符重載,#includeusingnamespacestd;classComplex{private:floatreal,image;public:Complex(floatr=0,floati=0);ComplexAdd(constComplex,Complex::Complex(floatr,floati){real=r;image=i;}voidComplex::Show(inti){//一般情況下,這里不應該有參數(shù)i,本例的目的是為了區(qū)分不同的復數(shù),便于觀看結(jié)果cout0)cout<<"+"<- 1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 課件 運算 重載
鏈接地址:http://www.szxfmmzy.com/p-11549015.html