第7章多態(tài)性與虛函數(shù)ppt課件.ppt

第7章多態(tài)性與虛函數(shù)ppt課件.ppt

ID:59490564

大?。?52.50 KB

頁(yè)數(shù):75頁(yè)

時(shí)間:2020-09-13

第7章多態(tài)性與虛函數(shù)ppt課件.ppt_第1頁(yè)
第7章多態(tài)性與虛函數(shù)ppt課件.ppt_第2頁(yè)
第7章多態(tài)性與虛函數(shù)ppt課件.ppt_第3頁(yè)
第7章多態(tài)性與虛函數(shù)ppt課件.ppt_第4頁(yè)
第7章多態(tài)性與虛函數(shù)ppt課件.ppt_第5頁(yè)
資源描述:

《第7章多態(tài)性與虛函數(shù)ppt課件.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、第七章多態(tài)性與虛函數(shù)本章內(nèi)容多態(tài)性概述運(yùn)算符重載虛函數(shù)多態(tài)性多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的一個(gè)重要特征。多態(tài)性:是指發(fā)出同樣的消息被不同類型的對(duì)象接收時(shí)而導(dǎo)致不同的行為。所謂發(fā)消息就是調(diào)用類中的成員函數(shù)。多態(tài)的實(shí)現(xiàn)函數(shù)重載運(yùn)算符重載虛函數(shù)靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編聯(lián)編的含義是指把一個(gè)消息和一個(gè)方法聯(lián)系在一起,也就是把一個(gè)函數(shù)名與其實(shí)現(xiàn)代碼聯(lián)系在一起。靜態(tài)聯(lián)編是在編譯階段進(jìn)行的。動(dòng)態(tài)聯(lián)編是在程序運(yùn)行過程中,根據(jù)程序運(yùn)行的需要進(jìn)行的聯(lián)編。當(dāng)通過對(duì)象名調(diào)用成員函數(shù)時(shí),只可能是調(diào)用對(duì)象自身的成員,所以,這種情況可采用靜態(tài)聯(lián)編實(shí)現(xiàn)。當(dāng)通過基類

2、指針調(diào)用成員函數(shù)時(shí),由于基類指針可以指向該基類的不同派生類對(duì)象,因此存在需要?jiǎng)討B(tài)聯(lián)編的可能性,但具體是否使用動(dòng)態(tài)聯(lián)編,還要看所調(diào)用的是否是虛函數(shù)。靜態(tài)多態(tài)性與動(dòng)態(tài)多態(tài)性靜態(tài)多態(tài)性(靜態(tài)聯(lián)編、靜態(tài)綁定)聯(lián)編工作出現(xiàn)在編譯階段。用對(duì)象名或者類名來限定要調(diào)用的函數(shù),只能是調(diào)用對(duì)象自身的成員動(dòng)態(tài)多態(tài)性(動(dòng)態(tài)聯(lián)編、動(dòng)態(tài)綁定)聯(lián)編工作在程序運(yùn)行時(shí)執(zhí)行用基類指針或者引用來限定要調(diào)用的函數(shù)。在程序運(yùn)行時(shí)根據(jù)基類指針指向的對(duì)象才能確定將要調(diào)用哪個(gè)類的成員函數(shù)。靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編聯(lián)編的含義是指把一個(gè)消息和一個(gè)方法聯(lián)系在一起,也就是把一個(gè)函數(shù)

3、名與其實(shí)現(xiàn)代碼聯(lián)系在一起。何時(shí)將一個(gè)變量與其實(shí)際類型所定義的行為綁定。在編譯期綁定,屬于靜態(tài)聯(lián)編或靜態(tài)綁定;在運(yùn)行期綁定,屬于動(dòng)態(tài)聯(lián)編或動(dòng)態(tài)綁定靜態(tài)聯(lián)編/綁定(StaticBinding)classMyclass{public:...function();function(int);function(int,int);...};voidmain(){Myclassa(5);a.function(7);…}7用一個(gè)成員函數(shù)實(shí)現(xiàn)兩個(gè)復(fù)數(shù)相加運(yùn)算規(guī)則:實(shí)部和虛部分別相加。操作數(shù):兩個(gè)操作數(shù)都是復(fù)數(shù)類的對(duì)象。復(fù)數(shù)類名:Compl

4、ex成員函數(shù):complex_add()//實(shí)部和虛部分別相加display()//輸出復(fù)數(shù)的實(shí)部和虛部classComplex{public:Complex();Complex(doubler,doublei);Complexcomplex_add(Complex&a);//實(shí)部和虛部分別相加voiddisplay();//輸出復(fù)數(shù)的實(shí)部和虛部private:doublereal,imag;};classComplex{public:Complex(){real=0;imag=0;}Complex(doubler,do

5、ublei){real=r;imag=i;}Complexcomplex_add(Complex&a);voiddisplay();private:doublereal,imag;};ComplexComplex::complex_add(Complex&a){Complextemp;temp.real=real+a.real;temp.imag=imag+a.imag;returntemp;}temp.real=this->real+a.real;temp.imag=this->imag+a.imag;temp.rea

6、l=c1.real+c2.real;temp.imag=c1.imag+c2.imag;voidComplex::display(){cout<<"("<

7、i)c2=(5,-10i)c3=c1+c2=(8,-6i)問題如何處理對(duì)象1+對(duì)象2?計(jì)算機(jī)怎樣處理運(yùn)算符intnum1,num2,num3;num3=num1+num2;C++將各種運(yùn)算符都處理成一個(gè)“運(yùn)算符函數(shù)”調(diào)用14計(jì)算機(jī)怎樣處理運(yùn)算符intnum1,num2,num3;num3=num1+num2;計(jì)算機(jī)這樣處理運(yùn)算符:num3=operator+(num1,num2);intoperator+(inti,intj){returni+j;}15計(jì)算機(jī)怎樣處理運(yùn)算符doublenum1,num2,num3;num

8、3=num1+num2;計(jì)算機(jī)這樣處理運(yùn)算符:num3=operator+(num1,num2);doubleoperator+(doublei,doublej){returni+j;}16計(jì)算機(jī)怎樣處理運(yùn)算符intnum1,num2,num3;num3=num1+num2;計(jì)算機(jī)這樣處理運(yùn)算符:operator=(

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。