![C++實(shí)驗(yàn)報(bào)告(虛基類)分析_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/1d9fa912-fff5-4862-aa35-810864f8b9f7/1d9fa912-fff5-4862-aa35-810864f8b9f71.gif)
![C++實(shí)驗(yàn)報(bào)告(虛基類)分析_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/1d9fa912-fff5-4862-aa35-810864f8b9f7/1d9fa912-fff5-4862-aa35-810864f8b9f72.gif)
![C++實(shí)驗(yàn)報(bào)告(虛基類)分析_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/1d9fa912-fff5-4862-aa35-810864f8b9f7/1d9fa912-fff5-4862-aa35-810864f8b9f73.gif)
![C++實(shí)驗(yàn)報(bào)告(虛基類)分析_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/1d9fa912-fff5-4862-aa35-810864f8b9f7/1d9fa912-fff5-4862-aa35-810864f8b9f74.gif)
![C++實(shí)驗(yàn)報(bào)告(虛基類)分析_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/15/1d9fa912-fff5-4862-aa35-810864f8b9f7/1d9fa912-fff5-4862-aa35-810864f8b9f75.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)五 Shape虛基類一、實(shí)驗(yàn)?zāi)康?.掌握虛基類的定義、使用2.理解使用虛函數(shù)和繼承類實(shí)現(xiàn)多態(tài)性二、實(shí)驗(yàn)環(huán)境Windows + VC+6.0。三、實(shí)驗(yàn)內(nèi)容及要求定義抽象基類Shape,有它派生出三個(gè)類:Circle、Rectangle、Triangle,用函數(shù)ShowArea分別顯示各種圖形的面積,最后還要顯示所有的圖形面積。要求用基類指針數(shù)組,使他的每一個(gè)元素指向一個(gè)派生類對象。四、實(shí)驗(yàn)步驟(1) 定義一個(gè)虛基類Shape,在ShowArea函數(shù)聲明前冠以virtual使其成為虛函數(shù),并且能夠在派生類中重定義。/形狀類 Shapeclass Shape public: virtual do
2、uble ShowArea()const=0; ;(2)定義三個(gè)派生類Circle、Rectangle、Triangle,并公有繼承Shape基類。/圓形 Circleclass Circle:public Shape private: double radius;/半徑 public: Circle(double r):radius(r) /構(gòu)造函數(shù) double ShowArea() const /求圓形面積的函數(shù) return PI*radius*radius; ;/矩形類 Rectangleclass Rectangle:public Shape private: double hei
3、gth;/高 double width;/寬public: Rectangle(double h,double w):heigth(h),width(w)/構(gòu)造函數(shù) double ShowArea()const /求矩形面積的函數(shù) return heigth*width; ;/三角形類 Triangleclass Triangle:public Shape private: double a,b,c;/三角形三條邊 public: Triangle(double x,double y,double z):a(x),b(y),c(z)/構(gòu)造函數(shù) double ShowArea()const /求
4、三角形面積函數(shù) int p=(a+b+c)/2;return sqrt(p*(p-a)*(p-b)*(p-c); (3)在主函數(shù)中分別調(diào)用三個(gè)派生類的ShowArea函數(shù),求出各個(gè)形狀的面積。int main() Circle A(0.5); cout圓形面積y:A.ShowArea()endl;/輸出圓形面積 coutendl;Rectangle B(3,4); cout矩形面積y:B.ShowArea()endl;/輸出矩形面積coutendl; Triangle C(5,3,4);cout三角形面積y:C.ShowArea()訪問派生類對象的成員函數(shù)ShowArea,如p0-ShowAr
5、ea()訪問的是對象A的成員函數(shù)。double area=0.0; Shape *p3=&A,&B,&C;/基類指針數(shù)組 for(int i=0;iShowArea();/面積相加 cout總面積y:areaShowArea();/訪問派生類重寫ShowArea函數(shù)的入口地址六、實(shí)驗(yàn)結(jié)果與總結(jié)實(shí)驗(yàn)總結(jié):抽象基類與普通基類不同,他平不是現(xiàn)實(shí)存在的對象,它可以沒有任何物理上的或其他實(shí)際意義方面的含義,例如Shape類,只有一個(gè)成員函數(shù),沒有數(shù)據(jù)成員。它既不代表點(diǎn),也不代表圓。實(shí)驗(yàn)結(jié)果如下:實(shí)驗(yàn)總結(jié):1. 抽象基類與普通基類不同,他平不是現(xiàn)實(shí)存在的對象,它可以沒有任何物理上的或其他實(shí)際意義方面的含義
6、,例如Shape類,只有一個(gè)成員函數(shù),沒有數(shù)據(jù)成員。它既不代表點(diǎn),也不代表圓。對于虛函數(shù),在基類用Virtual申明成員函數(shù)為虛函數(shù)。這樣就可以在派生類中重新定義此函數(shù),為他賦新功能,并能方便的調(diào)用。2. 抽象基類是本類族的公共接口?;蛘哒f,從同一基類派生出的多個(gè)類有同一接口。因此能響應(yīng)同一形式的消息(例如各類對象都有能對用基類指針調(diào)用虛函數(shù)作出響應(yīng)),但是相應(yīng)的方式因?qū)ο蟛煌?。在通過虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多動(dòng)性時(shí),可以不必考慮對象是哪一個(gè)類派生出來的,都用同一種方式調(diào)用(因?yàn)榛愔羔樋梢灾赶蛲活惤M的所有類,因而可通過基類指針調(diào)用不同類的虛函數(shù))。附1:完整的原程序#include #inclu
7、deusing namespace std; const double PI=3.1415926; /形狀類Shapeclass Shape public: virtual double ShowArea()const=0; ; /圓形類 Circleclass Circle:public Shape private: double radius;/半徑 public: Circle(double r):radius(r) /構(gòu)造函數(shù) double ShowArea() const /求圓形面積函數(shù) return PI*radius*radius; ; /矩形類 Rectangleclass
8、Rectangle:public Shape private: double heigth;/高 double width;/寬 public: Rectangle(double h,double w):heigth(h),width(w)/構(gòu)造函數(shù) double ShowArea()const /求矩形面積函數(shù) return heigth*width; ; /三角形類Triangleclass Triangle:public Shape private: double a,b,c;/三角形三條邊 public: Triangle(double x,double y,double z):a(x),b(y),c(z)/構(gòu)造函數(shù) double ShowArea()const /求三角形面積函數(shù) int p=(a+b+c)/2;return sqrt(p*(p-a)*(p-b)*(p-c); ; int main() Circle A(0.5); cout圓2形?面?積y:A.ShowArea()endl;/輸出圓形面積 coutendl;Rectangle B(3,4); cout矩形面積y:B.ShowArea()endl;/輸出矩形面積coutendl; Triangle C(5,3,4);cout三角
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《幼兒衛(wèi)生學(xué)》復(fù)習(xí)提要
- 2025年中、大功率激光器合作協(xié)議書
- 非計(jì)劃拔管不良事件應(yīng)急處理考核試題
- 2025年中班幼兒園教師個(gè)人工作總結(jié)范文(二篇)
- 2025年五金交電購銷合同樣本(2篇)
- 2025年互相擔(dān)保合同模板(三篇)
- 2025年產(chǎn)品授權(quán)經(jīng)銷協(xié)議(三篇)
- 劇場裝修合同稅務(wù)解決方案
- 咨詢公司裝修工程施工協(xié)議
- 化工品運(yùn)輸安全責(zé)任合同
- 大學(xué)生職業(yè)生涯發(fā)展規(guī)劃知到章節(jié)答案智慧樹2023年齊魯師范學(xué)院
- 環(huán)境因素匯總識(shí)別及評價(jià)表(保衛(wèi)部 )
- GB/T 9123.1-2000平面突面鋼制管法蘭蓋
- 消防安全風(fēng)險(xiǎn)辨識(shí)清單
- 元代文學(xué)-緒論課件
- 2023年版勞動(dòng)實(shí)踐河北科學(xué)技術(shù)出版社一年級下冊全冊教案
- 方案報(bào)審表(樣表)
- pp顧問的常見面試問題
- 法理學(xué)原理與案例完整版教學(xué)課件全套ppt教程
- 隧道仰拱施工之仰拱棧橋結(jié)構(gòu)計(jì)算書
- 軟體家具、沙發(fā)質(zhì)量檢驗(yàn)及工藝
評論
0/150
提交評論