




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十二講:多態(tài),楊章偉 e-mail:,課程內(nèi)容安排,多態(tài)的概念 函數(shù)重載 虛函數(shù) 抽象類 綜合練習(xí) 思考和習(xí)題,多態(tài),類的多態(tài)特性是支持面向?qū)ο蟮恼Z(yǔ)言最主要的特性 ,多態(tài)性是指不同對(duì)象接收到相同消息時(shí),根據(jù)對(duì)象類的不同產(chǎn)生不同的動(dòng)作。多態(tài)性提供了同一個(gè)接口可以用多種方法進(jìn)行調(diào)用的機(jī)制,從而可以通過(guò)相同的接口訪問(wèn)不同的函數(shù)。具體地說(shuō),就是同一個(gè)函數(shù)名稱,作用在不同的對(duì)象上將產(chǎn)生不同的操作。 繼承是面向?qū)ο蟮囊粋€(gè)重要特征。根據(jù)派生類所擁有的基類數(shù)目不同,可以分為單繼承和多繼承。一個(gè)類只有一個(gè)直接基類時(shí),稱為單繼承;而一個(gè)類同時(shí)有多個(gè)直接基類時(shí),則稱為多繼承,如圖11-1所示。,多態(tài)的含義,簡(jiǎn)單來(lái)
2、說(shuō),多態(tài)就是“一個(gè)接口,多種實(shí)現(xiàn)”,就是同一種事物表現(xiàn)出的多種形態(tài)。例如,一個(gè)人跟隨旅游團(tuán)去北京,其只要跟著旅游團(tuán)去即可,至于如何去,是坐火車、坐飛機(jī)還是其他方式,這由旅游團(tuán)來(lái)實(shí)現(xiàn),如圖12-1所示。,多態(tài)的作用,可以利用多態(tài)的特征,用統(tǒng)一的標(biāo)識(shí)來(lái)完成這些功能。這樣,就可以達(dá)到類的行為的再抽象,進(jìn)而統(tǒng)一標(biāo)識(shí),減少程序中標(biāo)識(shí)符的個(gè)數(shù)。 例如,下圖12-2表示的是求兩個(gè)數(shù)最大值的多種表示,其實(shí)這些表示都可以通過(guò)一個(gè)統(tǒng)一的標(biāo)識(shí)來(lái)表示。,函數(shù)重載,事實(shí)上,函數(shù)的重載也稱多態(tài)函數(shù),是實(shí)現(xiàn)編譯時(shí)的多態(tài)性的形式之一。其使程序能用同一個(gè)名字來(lái)訪問(wèn)一組相關(guān)的函數(shù),提高了程序的靈活性。函數(shù)重載時(shí),函數(shù)名相同,但函
3、數(shù)所帶的參數(shù)個(gè)數(shù)或數(shù)據(jù)類型不同,編譯系統(tǒng)會(huì)根據(jù)參數(shù)來(lái)決定調(diào)用哪個(gè)同名的函數(shù)。 面向?qū)ο蟪绦蛟O(shè)計(jì)中,函數(shù)的重載表現(xiàn)為兩種情況: 第一種是參數(shù)個(gè)數(shù)或類型有所差別的重載, 第二種是函數(shù)的參數(shù)完全相同但屬于不同的類。,虛函數(shù),虛函數(shù)是重載的另一種形式,實(shí)現(xiàn)的是動(dòng)態(tài)的重載,即函數(shù)調(diào)用與函數(shù)體之間的聯(lián)系是在運(yùn)行時(shí)才建立,也就是動(dòng)態(tài)聯(lián)編。前面的內(nèi)容也提到了,虛函數(shù)是實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài),即動(dòng)態(tài)多態(tài)性的一個(gè)重要方式。,定義虛函數(shù),虛函數(shù)的定義是在基類中進(jìn)行的,即把基類中需要定義為虛函數(shù)的成員函數(shù)聲明為virtual。當(dāng)基類中的某個(gè)成員函數(shù)被聲明為虛函數(shù)后,其就可以在派生類中被重新定義。在派生類中重新定義時(shí),其函數(shù)
4、原型,包括返回類型、函數(shù)名、參數(shù)個(gè)數(shù)和類型、參數(shù)的順序都必須與基類中的原型完全一致。一般來(lái)說(shuō),虛函數(shù)定義的形式為: virtual (參數(shù)表) 函數(shù)體 ,使用虛函數(shù),事實(shí)上,讀者可以看出,在派生類中被重新定義的基類中的虛函數(shù),是函數(shù)重載的另一種形式,但其與函數(shù)重載又有如下的區(qū)別:一般的函數(shù)重載,要求其函數(shù)的參數(shù)或參數(shù)類型必須有所不同,函數(shù)的返回類型也可以不同,但重載一個(gè)虛函數(shù)時(shí),要求函數(shù)名、返回類型、參數(shù)個(gè)數(shù)、參數(shù)的類型和參數(shù)的順序必須與基類中的虛函數(shù)的原型完全相同。 如果僅返回類型不同,其余相同,則系統(tǒng)會(huì)給出錯(cuò)誤信息; 如果函數(shù)名相同,而參數(shù)個(gè)數(shù)、參數(shù)的類型或參數(shù)的順序不同,系統(tǒng)認(rèn)為是普通的
5、函數(shù)重載,虛函數(shù)的特性將丟失。,抽象類,抽象類是一種特殊的類,其為一族類提供統(tǒng)一的操作界面,建立抽象類就是為了通過(guò)它多態(tài)地使用其中的成員函數(shù),抽象類是帶有純虛函數(shù)的類。,純虛函數(shù),當(dāng)在基類中不能為虛函數(shù)給出一個(gè)有意義的實(shí)現(xiàn)時(shí),可以將其聲明為純虛函數(shù),其實(shí)現(xiàn)留待派生類完成,純虛函數(shù)的作用是為派生類提供一個(gè)一致的接口。 一般來(lái)說(shuō),一個(gè)抽象類帶有至少一個(gè)純虛函數(shù)。純虛函數(shù)是在一個(gè)基類中說(shuō)明的虛函數(shù),它在該基類中沒(méi)有具體的操作內(nèi)容,要求各派生類在重新定義時(shí)根據(jù)自己的需要定義實(shí)際的操作內(nèi)容。 純虛函數(shù)的一般定義形式為: virtual(參數(shù)表)=0,綜合練習(xí),該范例使用抽象類和純虛函數(shù)來(lái)訪問(wèn)數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列和堆棧,隊(duì)列是一個(gè)先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),而堆棧是一個(gè)后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。,思考和習(xí)題,如何理解多態(tài)? 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,函數(shù)的重載有兩種形式,其分別是哪兩種? 虛函數(shù)是重載的另一種形式,實(shí)現(xiàn)的是動(dòng)態(tài)的重載
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品微生物安全監(jiān)測(cè)計(jì)劃
- 2025年血液凈化耗材項(xiàng)目提案報(bào)告模范
- 2025年同位素分離裝置項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 國(guó)際風(fēng)力發(fā)電項(xiàng)目合作計(jì)劃
- 工地周邊環(huán)境治安管理計(jì)劃
- 疫情后高校復(fù)課教學(xué)計(jì)劃
- 小學(xué)英語(yǔ)教師課堂創(chuàng)新計(jì)劃
- 2021屆山東省濟(jì)南市高考一模數(shù)學(xué)試卷
- 英語(yǔ)角戶外拓展活動(dòng)計(jì)劃
- 中小企業(yè)招商引資培訓(xùn)心得體會(huì)
- GB/T 25085.2-2024道路車輛汽車電纜第2部分:試驗(yàn)方法
- 【水利水電】李想 案例專項(xiàng)班教案 03-案例專項(xiàng)班(三)
- 水利工程項(xiàng)目預(yù)算管理方案
- 銀行大額存單業(yè)務(wù)培訓(xùn)
- DB37-T 4733-2024預(yù)制艙式儲(chǔ)能電站設(shè)計(jì)規(guī)范
- wps計(jì)算機(jī)二級(jí)試題及答案
- 鋼板樁安全技術(shù)交底
- 師德師風(fēng)-做“四有”好老師
- 衣食住行見證改革開放時(shí)代變遷-(修訂)
- 弱電智能化施工方案
- TQGCML 3946-2024 柴油發(fā)電機(jī)組維護(hù)保養(yǎng)規(guī)范
評(píng)論
0/150
提交評(píng)論