C-與面向?qū)ο蟪绦蛟O(shè)計(jì)解析課件_第1頁(yè)
C-與面向?qū)ο蟪绦蛟O(shè)計(jì)解析課件_第2頁(yè)
C-與面向?qū)ο蟪绦蛟O(shè)計(jì)解析課件_第3頁(yè)
C-與面向?qū)ο蟪绦蛟O(shè)計(jì)解析課件_第4頁(yè)
C-與面向?qū)ο蟪绦蛟O(shè)計(jì)解析課件_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

運(yùn)算符重載

operatoroverloading張俊2006-11-210/7/20231C++與面向?qū)ο蟪绦蛟O(shè)計(jì)運(yùn)算符重載

operatoroverloading張主要內(nèi)容和教學(xué)要求★掌握常用運(yùn)算符的重載★理解運(yùn)算符重載的兩種形式10/7/20232C++與面向?qū)ο蟪绦蛟O(shè)計(jì)主要內(nèi)容和教學(xué)要求★掌握常用運(yùn)算符的重載10/6/20232為什么要重載運(yùn)算符★應(yīng)用系統(tǒng)的運(yùn)算符集;★為自定義類型提供簡(jiǎn)潔的表達(dá)式; Complexa,b,c; 不重載運(yùn)算符: a.Print();c=Add(a,b); 重載運(yùn)算符:cout<<a;c=a+b;10/7/20233C++與面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要重載運(yùn)算符★應(yīng)用系統(tǒng)的運(yùn)算符集;10/6/20233運(yùn)算符重載的實(shí)現(xiàn)運(yùn)算符函數(shù)(operatorfunction) Typea,b,c; cin>>a>>b; c=a+b; cout<<c;?????10/7/20234C++與面向?qū)ο蟪绦蛟O(shè)計(jì)運(yùn)算符重載的實(shí)現(xiàn)運(yùn)算符函數(shù)(operatorfunctio當(dāng)前對(duì)象調(diào)用成員函數(shù)的對(duì)象,對(duì)于該成員函數(shù)來(lái)說(shuō)即為當(dāng)前對(duì)象。10/7/20235C++與面向?qū)ο蟪绦蛟O(shè)計(jì)當(dāng)前對(duì)象調(diào)用成員函數(shù)的對(duì)象,對(duì)于該成員函數(shù)來(lái)說(shuō)即為當(dāng)前對(duì)象。當(dāng)前對(duì)象(左操作數(shù))10/7/20236C++與面向?qū)ο蟪绦蛟O(shè)計(jì)當(dāng)前對(duì)象(左操作數(shù))10/6/20236C++與面向?qū)ο蟪绦蜿P(guān)于當(dāng)前對(duì)象的作用1.左操作數(shù)作為當(dāng)前對(duì)象調(diào)用運(yùn)算符函數(shù);2.左操作數(shù)隱含地作為二元運(yùn)算符的第一個(gè)參數(shù);3.用this指針或者直接訪問(wèn)左操作數(shù)的數(shù)據(jù)成員;4.右操作數(shù)作為運(yùn)算符重載函數(shù)的實(shí)參;10/7/20237C++與面向?qū)ο蟪绦蛟O(shè)計(jì)關(guān)于當(dāng)前對(duì)象的作用1.左操作數(shù)作為當(dāng)前對(duì)象調(diào)用運(yùn)算符函數(shù);1運(yùn)算符重載的限制★一個(gè)中心:不能夠改變運(yùn)算符的性質(zhì) 操作數(shù)的個(gè)數(shù); 優(yōu)先級(jí); 結(jié)合性; 語(yǔ)法結(jié)構(gòu);10/7/20238C++與面向?qū)ο蟪绦蛟O(shè)計(jì)運(yùn)算符重載的限制★一個(gè)中心:不能夠改變運(yùn)算符的性質(zhì)10/6/三個(gè)基本點(diǎn)★不能創(chuàng)建新的運(yùn)算符★不能改變運(yùn)算符的含義★不能僅僅操作基本數(shù)據(jù)類型(兩個(gè)操作數(shù)中必須有一個(gè)自定義類型)10/7/20239C++與面向?qū)ο蟪绦蛟O(shè)計(jì)三個(gè)基本點(diǎn)★不能創(chuàng)建新的運(yùn)算符10/6/20239C++與面可以不重載的運(yùn)算符默認(rèn)情況下,不需要重載: 賦值運(yùn)算符:= 地址運(yùn)算符:&10/7/202310C++與面向?qū)ο蟪绦蛟O(shè)計(jì)可以不重載的運(yùn)算符默認(rèn)情況下,不需要重載:10/6/2023不可重載和經(jīng)常重載的運(yùn)算符★不允許重載的運(yùn)算符

.

.*

::

?:

sizeof★經(jīng)常重載的運(yùn)算符 算術(shù)運(yùn)算符:+

-

*

/

++

-- 關(guān)系運(yùn)算符:>

>=

<

<=

==

!= 賦值運(yùn)算符:=

+=

-=

*=

/= I/O運(yùn)算符:<<

>> 一元運(yùn)算符:[]

()

!

-10/7/202311C++與面向?qū)ο蟪绦蛟O(shè)計(jì)不可重載和經(jīng)常重載的運(yùn)算符★不允許重載的運(yùn)算符10/6/20運(yùn)算符重載的形式★成員函數(shù)形式:運(yùn)算符函數(shù)作為類的成員★非成員函數(shù)形式:友元外部函數(shù)(全局函數(shù))10/7/202312C++與面向?qū)ο蟪绦蛟O(shè)計(jì)運(yùn)算符重載的形式★成員函數(shù)形式:運(yùn)算符函數(shù)作為類的成員10/Complex類詳解10/7/202313C++與面向?qū)ο蟪绦蛟O(shè)計(jì)Complex類詳解10/6/202313C++與面向?qū)ο蟪虜?shù)據(jù)成員及構(gòu)造函數(shù)10/7/202314C++與面向?qū)ο蟪绦蛟O(shè)計(jì)數(shù)據(jù)成員及構(gòu)造函數(shù)10/6/202314C++與面向?qū)ο蟪绦蛸x值運(yùn)算符成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用10/7/202315C++與面向?qū)ο蟪绦蛟O(shè)計(jì)賦值運(yùn)算符成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用10/6/20算術(shù)運(yùn)算符的重載成員函數(shù)原型思考:為什么只有一個(gè)加數(shù)?10/7/202316C++與面向?qū)ο蟪绦蛟O(shè)計(jì)算術(shù)運(yùn)算符的重載成員函數(shù)原型思考:為什么只有一個(gè)加數(shù)?10/加法運(yùn)算符的實(shí)現(xiàn)及調(diào)用成員函數(shù)定義成員函數(shù)調(diào)用10/7/202317C++與面向?qū)ο蟪绦蛟O(shè)計(jì)加法運(yùn)算符的實(shí)現(xiàn)及調(diào)用成員函數(shù)定義成員函數(shù)調(diào)用10/6/2010/7/202318C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202318C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)合運(yùn)算的運(yùn)算符成員函數(shù)定義成員函數(shù)原型10/7/202319C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)合運(yùn)算的運(yùn)算符成員函數(shù)定義成員函數(shù)原型10/6/20231成員函數(shù)定義成員函數(shù)調(diào)用10/7/202320C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)定義成員函數(shù)調(diào)用10/6/202320C++與面向?qū)σ辉\(yùn)算符的重載成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用10/7/202321C++與面向?qū)ο蟪绦蛟O(shè)計(jì)一元運(yùn)算符的重載成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用10/6成員函數(shù)形式的特點(diǎn)函數(shù)定義:作為類的成員函數(shù)。函數(shù)參數(shù):二元運(yùn)算符只帶一個(gè)參數(shù),一元運(yùn)算符不帶參數(shù)。函數(shù)調(diào)用:當(dāng)前對(duì)象作為左操作數(shù),函數(shù)參數(shù)作為右操作數(shù)。a.operator+(b)語(yǔ)法比較晦澀,不易理解10/7/202322C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式的特點(diǎn)函數(shù)定義:作為類的成員函數(shù)。10/6/20友元函數(shù)形式的重載友元函數(shù)定義友元函數(shù)原型友元函數(shù)調(diào)用10/7/202323C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式的重載友元函數(shù)定義友元函數(shù)原型友元函數(shù)調(diào)用10/友元函數(shù)形式的重載10/7/202324C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式的重載10/6/202324C++與面向?qū)ο蟪绦蛴言瘮?shù)形式的特點(diǎn)函數(shù)定義:作為類的友元函數(shù)函數(shù)參數(shù):二元運(yùn)算符帶兩個(gè)參數(shù),一元運(yùn)算符帶一個(gè)參數(shù)函數(shù)調(diào)用:兩個(gè)對(duì)象都作為函數(shù)的參數(shù)operator+(a,b);是幾元運(yùn)算符就帶幾個(gè)操作數(shù),語(yǔ)法符合習(xí)慣,易懂,但少用。10/7/202325C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式的特點(diǎn)函數(shù)定義:作為類的友元函數(shù)10/6/202成員函數(shù)形式遇到的問(wèn)題★當(dāng)運(yùn)算符的左操作數(shù)不是該類的對(duì)象時(shí),出現(xiàn)問(wèn)題。 如 Complexa,b; 重載:operator+(constComplex&r) a=3+b;★3不是Complex的對(duì)象,不能調(diào)用上述重載的運(yùn)算符。因而不能計(jì)算。10/7/202326C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式遇到的問(wèn)題★當(dāng)運(yùn)算符的左操作數(shù)不是該類的對(duì)象時(shí),友元函數(shù)形式的另一類用法成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用10/7/202327C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式的另一類用法成員函數(shù)原型成員函數(shù)定義成員函數(shù)調(diào)用流插入符和提取符的重載cin>>a>>b;cout<<a<<b;運(yùn)算符的左操作數(shù)cout不是Complex類的對(duì)象,因此必須采用友元形式的重載。10/7/202328C++與面向?qū)ο蟪绦蛟O(shè)計(jì)流插入符和提取符的重載cin>>a>>b;10/610/7/202329C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202329C++與面向?qū)ο蟪绦蛟O(shè)計(jì)請(qǐng)分析下列運(yùn)算符重載的形式T為自定義類型,并設(shè)下列運(yùn)算符都有意義。[1]Ta,bc; intx;[2]cin>>a>>b>>c;cout<<a<<b<<c;[3]a=b; [4]c=b+a; c=b–x;[5]c=x+a; c=x–b;10/7/202330C++與面向?qū)ο蟪绦蛟O(shè)計(jì)請(qǐng)分析下列運(yùn)算符重載的形式T為自定義類型,并設(shè)下列運(yùn)算符都有String類詳解

自課本P311開(kāi)始10/7/202331C++與面向?qū)ο蟪绦蛟O(shè)計(jì)String類詳解

自課本P311開(kāi)始10/6/20233110/7/202332C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202332C++與面向?qū)ο蟪绦蛟O(shè)計(jì)邏輯非運(yùn)算符友元函數(shù)的形式請(qǐng)參考P31310/7/202333C++與面向?qū)ο蟪绦蛟O(shè)計(jì)邏輯非運(yùn)算符友元函數(shù)的形式請(qǐng)參考P31310/6/20233重載流插入和提取運(yùn)算符10/7/202334C++與面向?qū)ο蟪绦蛟O(shè)計(jì)重載流插入和提取運(yùn)算符10/6/202334C++與面向?qū)ο罅鞑迦敕{(diào)用分析10/7/202335C++與面向?qū)ο蟪绦蛟O(shè)計(jì)流插入符調(diào)用分析10/6/202335C++與面向?qū)ο蟪绦蛟O(shè)復(fù)制構(gòu)造函數(shù)10/7/202336C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)制構(gòu)造函數(shù)10/6/202336C++與面向?qū)ο蟪绦蛟O(shè)計(jì)賦值運(yùn)算符10/7/202337C++與面向?qū)ο蟪绦蛟O(shè)計(jì)賦值運(yùn)算符10/6/202337C++與面向?qū)ο蟪绦蛟O(shè)計(jì)字符串連接“+、+=”10/7/202338C++與面向?qū)ο蟪绦蛟O(shè)計(jì)字符串連接“+、+=”10/6/202338C++與面向?qū)D(zhuǎn)換運(yùn)算符有什么樣的轉(zhuǎn)換構(gòu)造函數(shù),就應(yīng)該提供什么樣的轉(zhuǎn)換運(yùn)算符數(shù)據(jù)類型轉(zhuǎn)換★算術(shù)運(yùn)算★賦值★實(shí)參傳給形參★返回值10/7/202339C++與面向?qū)ο蟪绦蛟O(shè)計(jì)轉(zhuǎn)換運(yùn)算符有什么樣的轉(zhuǎn)換構(gòu)造函數(shù),就應(yīng)該提供什么樣的轉(zhuǎn)換運(yùn)算Rational類詳解10/7/202340C++與面向?qū)ο蟪绦蛟O(shè)計(jì)Rational類詳解10/6/202340C++與面向?qū)ο?0/7/202341C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202341C++與面向?qū)ο蟪绦蛟O(shè)計(jì)求兩個(gè)數(shù)的最大公約數(shù)10/7/202342C++與面向?qū)ο蟪绦蛟O(shè)計(jì)求兩個(gè)數(shù)的最大公約數(shù)10/6/202342C++與面向?qū)ο蟪糖髢蓚€(gè)數(shù)的最小公倍數(shù)10/7/202343C++與面向?qū)ο蟪绦蛟O(shè)計(jì)求兩個(gè)數(shù)的最小公倍數(shù)10/6/202343C++與面向?qū)ο蟪虒?duì)分?jǐn)?shù)進(jìn)行標(biāo)準(zhǔn)化10/7/202344C++與面向?qū)ο蟪绦蛟O(shè)計(jì)對(duì)分?jǐn)?shù)進(jìn)行標(biāo)準(zhǔn)化10/6/202344C++與面向?qū)ο蟪绦蛟O(shè)各種構(gòu)造函數(shù)10/7/202345C++與面向?qū)ο蟪绦蛟O(shè)計(jì)各種構(gòu)造函數(shù)10/6/202345C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)制構(gòu)造函數(shù)10/7/202346C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)制構(gòu)造函數(shù)10/6/202346C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式

的重載10/7/202347C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式

的重載10/6/202347C++與面向?qū)ο蟪藤x值運(yùn)算符的重載10/7/202348C++與面向?qū)ο蟪绦蛟O(shè)計(jì)賦值運(yùn)算符的重載10/6/202348C++與面向?qū)ο蟪绦蛟O(shè)算術(shù)運(yùn)算符的重載10/7/202349C++與面向?qū)ο蟪绦蛟O(shè)計(jì)算術(shù)運(yùn)算符的重載10/6/202349C++與面向?qū)ο蟪绦蛟O(shè)10/7/202350C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202350C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)合運(yùn)算符10/7/202351C++與面向?qū)ο蟪绦蛟O(shè)計(jì)復(fù)合運(yùn)算符10/6/202351C++與面向?qū)ο蟪绦蛟O(shè)計(jì)關(guān)系運(yùn)算符10/7/202352C++與面向?qū)ο蟪绦蛟O(shè)計(jì)關(guān)系運(yùn)算符10/6/202352C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202353C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202353C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202354C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202354C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202355C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202355C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202356C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202356C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202357C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202357C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202358C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202358C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式的特點(diǎn)★運(yùn)算符重載函數(shù)作為類的成員函數(shù)?!锒\(yùn)算符重載函數(shù)只帶一個(gè)參數(shù),因?yàn)榱硗庖粋€(gè)參數(shù)隱含為this。operator+(Complex*this,constComplex&);★一元運(yùn)算符重載函數(shù)不帶參數(shù)。10/7/202359C++與面向?qū)ο蟪绦蛟O(shè)計(jì)成員函數(shù)形式的特點(diǎn)★運(yùn)算符重載函數(shù)作為類的成員函數(shù)。10/6友元函數(shù)形式

的重載10/7/202360C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式

的重載10/6/202360C++與面向?qū)ο蟪?0/7/202361C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202361C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202362C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202362C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202363C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202363C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202364C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202364C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202365C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202365C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202366C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202366C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/7/202367C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202367C++與面向?qū)ο蟪绦蛟O(shè)計(jì)請(qǐng)完成其定義10/7/202368C++與面向?qū)ο蟪绦蛟O(shè)計(jì)請(qǐng)完成其定義10/6/202368C++與面向?qū)ο蟪绦蛟O(shè)計(jì)重載<<和>>10/7/202369C++與面向?qū)ο蟪绦蛟O(shè)計(jì)重載<<和>>10/6/202369C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式重載的語(yǔ)法10/7/202370C++與面向?qū)ο蟪绦蛟O(shè)計(jì)友元函數(shù)形式重載的語(yǔ)法10/6/202370C++與面向?qū)ο笞址谋容^10/7/202371C++與面向?qū)ο蟪绦蛟O(shè)計(jì)字符串的比較10/6/202371C++與面向?qū)ο蟪绦蛟O(shè)計(jì)插入符的重載10/7/202372C++與面向?qū)ο蟪绦蛟O(shè)計(jì)插入符的重載10/6/202372C++與面向?qū)ο蟪绦蛟O(shè)計(jì)合乎習(xí)慣的重載形式★重載二元運(yùn)算符時(shí)帶兩個(gè)參數(shù),較好理解;★書(shū)寫簡(jiǎn)單:無(wú)需類名和二元作用域運(yùn)算符。10/7/202373C++與面向?qū)ο蟪绦蛟O(shè)計(jì)合乎習(xí)慣的重載形式★重載二元運(yùn)算符時(shí)帶兩個(gè)參數(shù),較好理解;1兩種形式的選擇時(shí)機(jī)★左操作數(shù)(或者只有左操作數(shù)時(shí))是本類的對(duì)象(引用)時(shí),必須選用成員函數(shù)形式?!镒蟛僮鲾?shù)不是本類的對(duì)象,必須采用非成員函數(shù)的形式,一般是友元函數(shù)?!镞\(yùn)算符函數(shù)不是類的成員函數(shù),但是要訪問(wèn)類的保護(hù)或者私有成員時(shí),也可以采用友元函數(shù)形式。10/7/202374C++與面向?qū)ο蟪绦蛟O(shè)計(jì)兩種形式的選擇時(shí)機(jī)★左操作數(shù)(或者只有左操作數(shù)時(shí))是本類的對(duì)小結(jié)1—兩種形式★二元運(yùn)算符以成員函數(shù)的形式重載時(shí),只帶一個(gè)參數(shù),以友元函數(shù)形式重載時(shí),有兩個(gè)參數(shù)。★重載(),[],->和任何賦值運(yùn)算符時(shí),必須采用成員函數(shù)形式。10/7/202375C++與面向?qū)ο蟪绦蛟O(shè)計(jì)小結(jié)1—兩種形式★二元運(yùn)算符以成員函數(shù)的形式重載時(shí),只帶一個(gè)小結(jié)2—兩種形式★單目運(yùn)算符最好被重載為成員函數(shù);★具有可交換性的雙目運(yùn)算符最好兩種形式都有(成員函數(shù)時(shí)適用左操作數(shù)為本類對(duì)象,友元函數(shù)時(shí)適用左操作數(shù)為其他類的對(duì)象)?!锉M量重用已有的操作和運(yùn)算符。10/7/202376C++與面向?qū)ο蟪绦蛟O(shè)計(jì)小結(jié)2—兩種形式★單目運(yùn)算符最好被重載為成員函數(shù);10/6/流插入符和提取符的重載10/7/202377C++與面向?qū)ο蟪绦蛟O(shè)計(jì)流插入符和提取符的重載10/6/202377C++與面向?qū)ο?0/7/202378C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202378C++與面向?qū)ο蟪绦蛟O(shè)計(jì)前增量運(yùn)算符的重載Rationalr(1,2); ++r;10/7/202379C++與面向?qū)ο蟪绦蛟O(shè)計(jì)前增量運(yùn)算符的重載Rationalr(1,2);10/6后增量運(yùn)算符的重載Rationalr(-1,5); r++;10/7/202380C++與面向?qū)ο蟪绦蛟O(shè)計(jì)后增量運(yùn)算符的重載Rationalr(-1,5);10/10/7/202381C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202381C++與面向?qū)ο蟪绦蛟O(shè)計(jì)前增量與后增量的區(qū)別★參數(shù)的區(qū)別(主要區(qū)別) operator++(); operator++(int);Rationalr; ++r;r.operator++(); r++;r.operator++(0);//0偽值,僅僅是為了區(qū)別前增量和后增量。10/7/202382C++與面向?qū)ο蟪绦蛟O(shè)計(jì)前增量與后增量的區(qū)別★參數(shù)的區(qū)別(主要區(qū)別)10/6/202區(qū)別之二★返回值的區(qū)別: 前增量:先修改當(dāng)前對(duì)象,再返回之,因而應(yīng)該返回引用。 后增量:先用臨時(shí)對(duì)象保存當(dāng)前對(duì)象,再修改當(dāng)前對(duì)象,然后返回臨時(shí)對(duì)象,因而返回值。10/7/202383C++與面向?qū)ο蟪绦蛟O(shè)計(jì)區(qū)別之二★返回值的區(qū)別:10/6/202383C++與面向?qū)?0/7/202384C++與面向?qū)ο蟪绦蛟O(shè)計(jì)10/6/202384C++與面向?qū)ο蟪绦蛟O(shè)計(jì)還有兩個(gè)運(yùn)算符

[]

()10/7/202385C++與面向?qū)ο蟪绦蛟O(shè)計(jì)還有兩個(gè)運(yùn)算符10/6/202385C++與面向?qū)ο蟪绦蛟O(shè)計(jì)下標(biāo)運(yùn)算符的重載template<classType>Type&Array<Type>::operator[](intindex){ assert(index>=0&&index<nSize); returnpList[index];}Array<int>a(10);A[20]=1;10/7/202386C++與面向?qū)ο蟪绦蛟O(shè)計(jì)下標(biāo)運(yùn)算符的重載template<classType>1函數(shù)調(diào)用運(yùn)算符()的重載10/7/202387C++與面向?qū)ο蟪绦蛟O(shè)計(jì)函數(shù)調(diào)用運(yùn)算符()的重載10/6/202387C++與面向?qū)π〗Y(jié)——運(yùn)算符重載的形式10/7/202388C++與面向?qū)ο蟪绦蛟O(shè)計(jì)小結(jié)——運(yùn)算符重載的形式10/6/202388C++與面向?qū)π〗Y(jié)——值返回與引用返回★引用返回可以成為左值,被賦值、修改或者給其他對(duì)象賦值;成員函數(shù)引用返回可以連續(xù)調(diào)用(例如<<和>>)★所有賦值運(yùn)算符都應(yīng)該引用返回★前增量應(yīng)該引用返回10/7/202389C++與面向?qū)ο蟪绦蛟O(shè)計(jì)小結(jié)——值返回與引用返回★引用返回可以成為左值,被賦值、修改續(xù)上★下標(biāo)運(yùn)算符引用返回可以修改返回的值★希望改變當(dāng)前對(duì)象的成員函數(shù)可以返回引用(例如+)10/7/202390C++與面向?qū)ο蟪绦蛟O(shè)計(jì)續(xù)上★下標(biāo)運(yùn)算符引用返回可以修改返回的值10/6/20239小結(jié)——關(guān)于

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論