




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、會(huì)計(jì)學(xué)1譚浩強(qiáng)譚浩強(qiáng)C程序設(shè)計(jì)程序設(shè)計(jì)(chn x sh j) n第一頁,共55頁。動(dòng)態(tài)多態(tài)性:是在程序運(yùn)行過程中才動(dòng)態(tài)地確定操作所針對(duì)的對(duì)象。它又稱運(yùn)行時(shí)的多態(tài)性。動(dòng)態(tài)多態(tài)性是通過虛函數(shù)(hnsh)(virtual function)實(shí)現(xiàn)的。在本章中主要介紹動(dòng)態(tài)多態(tài)性和虛函數(shù)(hnsh)。第2頁/共55頁第二頁,共55頁。第3頁/共55頁第三頁,共55頁。(1) 聲明基類Point類 寫出聲明基類Point的部分:#include /聲明類Point /聲明一個(gè)類包括什么?class Pointpublic: Point(float x=0,float y=0);/有默認(rèn)參數(shù)的構(gòu)造函數(shù)第4頁
2、/共55頁第四頁,共55頁。第5頁/共55頁第五頁,共55頁。第6頁/共55頁第六頁,共55頁。第7頁/共55頁第七頁,共55頁。第8頁/共55頁第八頁,共55頁。第9頁/共55頁第九頁,共55頁。第10頁/共55頁第十頁,共55頁。第11頁/共55頁第十一頁,共55頁。第12頁/共55頁第十二頁,共55頁。第13頁/共55頁第十三頁,共55頁。cy1.Circle:area( )。用這種方法來區(qū)分兩個(gè)同名的函數(shù)。但是這樣做很不方便。第14頁/共55頁第十四頁,共55頁。C+中的虛函數(shù)就是用來解決這個(gè)問題的。虛函數(shù)的作用是允許在派生類中重新定義與基類同名的函數(shù),并且可以通過基類指針或引用來訪問
3、基類和派生類中的同名函數(shù)。方法:由基類指針,訪問各層次中的同名函數(shù)。例12.2。再討論使用虛函數(shù)的情況。第15頁/共55頁第十五頁,共55頁。第16頁/共55頁第十六頁,共55頁。/Student類成員函數(shù)的實(shí)現(xiàn)類成員函數(shù)的實(shí)現(xiàn)Student:Student(int n, string nam,float s) /定義定義(dngy)構(gòu)造函數(shù)構(gòu)造函數(shù) num=n;name=nam;score=s;void Student:display( ) /定義定義(dngy)輸出函數(shù)輸出函數(shù)coutnum:numnname:namenscore:scorenn;第17頁/共55頁第十七頁,共55頁。第1
4、8頁/共55頁第十八頁,共55頁。第19頁/共55頁第十九頁,共55頁。第20頁/共55頁第二十頁,共55頁。第21頁/共55頁第二十一頁,共55頁。數(shù)相同,并根據(jù)派生類的需要重新定義函數(shù)體。第22頁/共55頁第二十二頁,共55頁。指針變量,并使它指向同一類族中需要調(diào)用該函數(shù)的對(duì)象。(4) 通過該指針變量調(diào)用此虛函數(shù),此時(shí)調(diào)用的就是指針變量指向的對(duì)象的同名函數(shù)。第23頁/共55頁第二十三頁,共55頁。第24頁/共55頁第二十四頁,共55頁。第25頁/共55頁第二十五頁,共55頁。第26頁/共55頁第二十六頁,共55頁。第27頁/共55頁第二十七頁,共55頁。法確定調(diào)用對(duì)象的。第28頁/共55頁
5、第二十八頁,共55頁。的,因此也稱為滯后關(guān)聯(lián)(late binding)。第29頁/共55頁第二十九頁,共55頁。第30頁/共55頁第三十頁,共55頁??诘刂贰O到y(tǒng)在進(jìn)行動(dòng)態(tài)關(guān)聯(lián)時(shí)的時(shí)間開銷是很少的,因此,多態(tài)性是高效的。第31頁/共55頁第三十一頁,共55頁。第32頁/共55頁第三十二頁,共55頁。第33頁/共55頁第三十三頁,共55頁。第34頁/共55頁第三十四頁,共55頁。第35頁/共55頁第三十五頁,共55頁。先調(diào)用了派生類的析構(gòu)函數(shù),再調(diào)用了基類的析構(gòu)函數(shù),符合人們的愿望。第36頁/共55頁第三十六頁,共55頁。空的虛析構(gòu)函數(shù),以保證在撤銷動(dòng)態(tài)分配空間時(shí)能得到正確的處理。構(gòu)造函數(shù)不能
6、聲明為虛函數(shù)。這是因?yàn)樵趫?zhí)行構(gòu)造函數(shù)時(shí)類對(duì)象還未完成建立過程,當(dāng)然談不上函數(shù)與類對(duì)象的綁定。第37頁/共55頁第三十七頁,共55頁。area函數(shù)(hnsh)的功能不同,一個(gè)是求圓面積,一個(gè)是求圓柱體表面積。僅供派生而無實(shí)際意義的函數(shù)(hnsh),故純虛之。第38頁/共55頁第三十八頁,共55頁。函數(shù)這就將area聲明為一個(gè)純虛函數(shù)(pure virtual function)。純虛函數(shù)是在聲明虛函數(shù)時(shí)被“初始化”為0的函數(shù)。聲明純虛函數(shù)的一般形式是virtual 函數(shù)類型 函數(shù)名 (參數(shù)表列) =0;第39頁/共55頁第三十九頁,共55頁。進(jìn)行定義。如果在基類中沒有保留函數(shù)名字,則無法實(shí)現(xiàn)多態(tài)
7、性。如果在一個(gè)類中聲明了純虛函數(shù),而在其派生類中沒有對(duì)該函數(shù)定義,則該虛函數(shù)在派生類中仍然為純虛函數(shù)。第40頁/共55頁第四十頁,共55頁。base class)。第41頁/共55頁第四十一頁,共55頁。以被調(diào)用。這個(gè)派生類就不是抽象類,而是可以用來定義對(duì)象的具體類(concrete class)。如果在派生類中沒有對(duì)所有純虛函數(shù)進(jìn)行定義,則此派生類仍然是抽象類,不能用來定義對(duì)象。第42頁/共55頁第四十二頁,共55頁。第43頁/共55頁第四十三頁,共55頁。閱讀,分段插入了一些文字說明。程序如下: 第44頁/共55頁第四十四頁,共55頁。第45頁/共55頁第四十五頁,共55頁。第46頁/共55頁第四十六頁,共55頁。第47頁/共55頁第四十七頁,共55頁。第48頁/共55頁第四十八頁,共55頁。第49頁/共55頁第四十九頁,共55頁。第50頁/共55頁第五十頁,共55頁。第51頁/共55頁第五十一頁,共55頁。把各類中共(zhn n)有的成員函數(shù)集中在抽象基類中聲明。(4) 抽象基類是本類族的公共接口?;蛘哒f,從同一基類派生出的多個(gè)類有同一接口。(5) 區(qū)別靜態(tài)關(guān)聯(lián)和動(dòng)態(tài)關(guān)聯(lián)。第52頁/共55頁第五十二頁,共55頁。不知道類是怎樣聲明的,但是可以使用這些類來派生出自己的類。利
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 采石場承包合同范本及資源保護(hù)與利用協(xié)議
- 招生團(tuán)隊(duì)協(xié)議書范本
- 民族風(fēng)情步行街個(gè)人店鋪?zhàn)赓U與文化傳承合同
- 餐飲場地租賃合同范本:包含租賃合同終止及清算條款
- 代理人協(xié)議書范本
- 拆除工程臨時(shí)交通疏導(dǎo)合同范本
- 寵物寄養(yǎng)買賣協(xié)議書范本
- 餐飲行業(yè)廚師勞務(wù)派遣與菜品創(chuàng)新合同
- 資產(chǎn)清算拍賣委托代理合同書范本
- 水利設(shè)施拆除工程安全監(jiān)管協(xié)議
- 民俗文化的產(chǎn)業(yè)化發(fā)展
- 班級(jí)讀書會(huì)《城南舊事》課件
- 胃早癌-經(jīng)典課件
- 中央廣播電視大學(xué)畢業(yè)生登記表-6
- 垃圾滲濾液應(yīng)急處理服務(wù)投標(biāo)方案技術(shù)標(biāo)
- 質(zhì)量管理體系全套文件
- 夜市治安管理應(yīng)急預(yù)案
- 明德云學(xué)堂義務(wù)教育心得
- 珍愛生命中學(xué)生心理健康主題班會(huì)
- Cmk設(shè)備能力指數(shù)分析表
- J17J177 鋼絲網(wǎng)架珍珠巖復(fù)合保溫外墻板建筑構(gòu)造
評(píng)論
0/150
提交評(píng)論