




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
重要特征。利用多態(tài)性可以設(shè)計(jì)一個(gè)易于擴(kuò)樣表述多態(tài)性的:向不同的對(duì)象發(fā)送同一個(gè)消息,從系統(tǒng)實(shí)現(xiàn)的角度看,多態(tài)性分為兩類:靜態(tài)多態(tài)過虛函數(shù)(virtualfunction)實(shí)現(xiàn)的。要研究的問題是:當(dāng)一個(gè)基類被繼承為不同的派生例12.1先建立一個(gè)Point(點(diǎn))類,包含數(shù)據(jù)成員 classPointvoidsetPoint(float,float);floatgetX()const{returnx;}floatgetY()const{return
returnoutput;} 現(xiàn)在要對(duì)上面寫的基類進(jìn)行調(diào)試,檢查它是否}
voidsetRadius(float);floatarea()const;
returnoutput;}
Point&pRef=c;return0;
new voidsetHeight(float);floatarea()const;
returnoutput;}
cout<<″\\npRefasaPoint:″<<pRef; Circle return0;}
new
(, pRefasa 在例12.1程序中用cy1.area()調(diào)用的是派生類cy1.Circle::area()。用這種方法來區(qū)分兩個(gè)同名的函數(shù)。但是這樣做很不方便。 y();”可以調(diào)用不同派生層次中的 數(shù),并且可以通過基類指針或來基類和派 #include<iostream>#include<string> classStudent voiddis intnum;floatscore;
void voiddis y();//
void y Graduate::Graduate(intn,stringnam,floats,floatp):Student(n,nam,s),pay(p){}int{Studentstud1(1001,″Li″,87.5); //定義Student類對(duì)象stud1Graduategrad1(2001,″Wang″,98.5,563.5); y(); return0;}
由虛函數(shù)實(shí)現(xiàn)的動(dòng)態(tài)多態(tài)性就是:同一類族中不同 象變合使類同名函向可如果指不斷地對(duì)象,就能斷地調(diào)這這如前說不地車 的地,然后 。重載。但與重載不同的是:同一類族的虛函數(shù)的首這里是指把一個(gè)函數(shù)名與一個(gè)類對(duì)象在一起,類,其過程稱為靜態(tài)關(guān)聯(lián)(staticbinding),由于是 y()”)。顯然,對(duì)這樣 y()”,當(dāng)然是調(diào)用grad1中的 (dynamicbinding)。這種多態(tài)性是動(dòng)態(tài)的多態(tài)性,關(guān)聯(lián)(latebinding)。 需要說明的是:使用虛函數(shù),系統(tǒng)要有一定的空間構(gòu)造一個(gè)虛函數(shù)表(virtualfunctiontable,簡(jiǎn)稱算符撤銷對(duì)象時(shí),會(huì)發(fā)生一個(gè)情況:系統(tǒng)會(huì)只執(zhí)行基類的析構(gòu)函數(shù),而不執(zhí)行派生類的析構(gòu)函數(shù)。例12.3基類中有非虛析構(gòu)函數(shù)時(shí)的執(zhí)行情況。 //Point
Circle( //Circleintdeletep;}
如果將基類的析構(gòu)函數(shù)為虛函數(shù)時(shí),由該基類 慣虛析構(gòu)函數(shù),即使基類并不需要析構(gòu)函數(shù),構(gòu)造函數(shù)不能為虛函數(shù)。這是因?yàn)樵趫?zhí)行構(gòu)造有時(shí)在基類中將某一成員函數(shù)定為虛函數(shù),并不是基類本身的要求,而是考慮到派生類的需要,在基類中預(yù)留了一個(gè)函數(shù)名,具體功能留給派生類根據(jù)需要去定義。例如在本章的例12.1程序中,基類Point中沒有求面積的area函數(shù),因?yàn)椤包c(diǎn)”是沒有面積的,也就是說,基類本身不需要這個(gè)函數(shù),所以在例12.1程序中的Point類中沒有定義area函數(shù)。但是,在其直接派生類Circle和間接派生類Cylinder中都需要有area函數(shù),而且這兩個(gè)area函數(shù)的功能不同,一個(gè)是求圓面積,一個(gè)是求圓柱體表面積。并為虛函數(shù): 為一個(gè)純虛函數(shù)(purevirtual 訴編譯系統(tǒng)“這是純虛函數(shù)”;③這是一個(gè) 能被調(diào)用。它只是通知編譯系統(tǒng):“在這里 如果了一個(gè)類,一般可以用它定義對(duì)象。但是 baseclass)。用來定義對(duì)象的具體類(concreteclass)。如果在派象基類Shape(形狀)。Point(點(diǎn)),Circle(圓),#include<iostream> classShapevirtualvoidshapeName()const=0;
floatgetX()const{returnx;}floatgetY()const{returnvirtualvoidshapeName()const{cout<<″Point:″;} friendostream&operator<<(ostream&,constPoint&);returnoutput;} voidsetRadius(float);floatgetRadius()const;virtualfloatarea()const; returnoutput;} voidsetHeight(float);virtualfloatarea()const;friendostream&operator<<(ostream&,constCylinder&);returnoutput;}Circle
Shape
//
return0;}:Circle:[2.4,1.2],r=5.6 (Circle類對(duì)象circle的數(shù)據(jù):圓心和半
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國二氧化碳校驗(yàn)器數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 統(tǒng)編版二年級(jí)語文下冊(cè)第七單元達(dá)標(biāo)測(cè)試卷(含答案)
- 四升五語文知識(shí)銜接專項(xiàng)訓(xùn)練 專題二·漢字 同步練習(xí)(含答案)人教統(tǒng)編版
- 高叉理論考試試題及答案
- 環(huán)宇技校焊工考試題及答案
- 2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識(shí)強(qiáng)化訓(xùn)練試卷A卷附答案
- 河南單招培訓(xùn)試題及答案
- 2023-2024學(xué)年廣東省廣州市華南師大附屬番禺學(xué)校七年級(jí)(下)月考數(shù)學(xué)試卷(含答案)
- 采購與安裝分包合同(2篇)
- 農(nóng)業(yè)技術(shù)推廣數(shù)字化平臺(tái)建設(shè)方案
- 2025年食品供應(yīng)商合同范本
- 《網(wǎng)絡(luò)信息安全教學(xué)》課件
- 徐州2025年江蘇徐州市口腔醫(yī)院招聘非在編醫(yī)務(wù)人員53人筆試歷年參考題庫附帶答案詳解-1
- 2025年01月2025中國作家協(xié)會(huì)所屬單位公開招聘11人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 用色彩情感引發(fā)共鳴社交媒體運(yùn)營(yíng)秘訣
- 2025年江西機(jī)電職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫含答案解析
- 2025年江蘇旅游職業(yè)學(xué)院高職單招職業(yè)技能測(cè)試近5年常考版參考題庫含答案解析
- 2024年江西司法警官職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 2025年上海市租房合同標(biāo)準(zhǔn)樣本(2篇)
- 四年級(jí) 人教版 數(shù)學(xué) 第三單元《乘法運(yùn)算律(四)(例8) -解決問題策略的多樣化》課件
- 2025年全國法制宣傳日普法知識(shí)競(jìng)賽題庫及答案(共200題)
評(píng)論
0/150
提交評(píng)論