c課件運算符重載和類重載.ppt
《c課件運算符重載和類重載.ppt》由會員分享,可在線閱讀,更多相關《c課件運算符重載和類重載.ppt(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第12章運算符重載和類型重載,主要內(nèi)容:12.1運算符重載規(guī)則12.2類型重載,在C++中有這樣的情況,同一個類型或運算符在不同的類中代表不同的意思或者實施不同的運算,這就是面向對象的三大特點之一的多態(tài)。函數(shù)重載是C++語言中多態(tài)的一種表現(xiàn)形式,運算符重載和類型重載是多態(tài)的另外兩種表現(xiàn)形式。,運算符重載是對已有的運算符賦予多重含義。C++中預定義的運算符的操作對象只能是基本數(shù)據(jù)類型,對于很多用戶自定義類型,也需要有類似的運算操作,這就提出了對運算符進行重新定義,賦予已有符號以新功能的要求。同一個運算符作用于不同類型的數(shù)據(jù)導致不同的行為。,12.1運算符重載概述,運算符重載只能對系統(tǒng)提供的已有運算定義新的運算含義,不能創(chuàng)造全新的運算符,同時還不能改變運算符原有的語法結構、操作數(shù)個數(shù)、優(yōu)先級和結合性,不能有二義性。不是所有的運算符都能重載,不能重載的運算符有:作用域運算符(::)、條件運算符(?:)、直接成員訪問運算符(.)、sizeof運算符、解除對指向類成員的指針的引用運算符(.*)。運算符重載的關鍵字是operator。針對一個具體類的已有運算符重載有兩種途徑:1)將運算符重新定義為類的成員函數(shù);2)將運算符重新定義為類的友元函數(shù)。,一、運算符重載方法,定義一個重載運算符就像定義一個函數(shù),只是該函數(shù)的名字是operator@,這里@代表運算符。函數(shù)參數(shù)表中參數(shù)的個數(shù)取決于兩個因素:1)運算符是一元的(一個參數(shù))還是二元的(兩個參數(shù))。2)運算符被定義為友元函數(shù)(對于一元是一個參數(shù),對于二元是兩個參數(shù))還是成員函數(shù)(對于一元沒有參數(shù),對于二元是一個參數(shù)—對象變?yōu)樽髠葏?shù))。,1.將運算符重載為類的成員函數(shù),將運算符重載為類的成員函數(shù)就是在類中用關鍵字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ù),便于觀看結果cout0)cout<<"+"<- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 課件 運算 重載
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://italysoccerbets.com/p-11549015.html