C++實(shí)驗(yàn)五-多態(tài)_第1頁(yè)
C++實(shí)驗(yàn)五-多態(tài)_第2頁(yè)
C++實(shí)驗(yàn)五-多態(tài)_第3頁(yè)
C++實(shí)驗(yàn)五-多態(tài)_第4頁(yè)
C++實(shí)驗(yàn)五-多態(tài)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上福建工程學(xué)院實(shí)驗(yàn)報(bào)告面向?qū)ο蟪绦蛟O(shè)計(jì)(C+)專業(yè) 電子信息工程 班級(jí) 1303班 座號(hào) 16號(hào) 姓名 阮華朗 日期 2015.11.26 實(shí)驗(yàn)五多態(tài)程序設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康模?、理解運(yùn)算符重載的概念和實(shí)質(zhì),掌握運(yùn)算符重載函數(shù)的定義方法,掌握運(yùn)算符重載為類的成員函數(shù)的方法。2、掌握虛函數(shù)的定義方法及其在實(shí)現(xiàn)多態(tài)性中的應(yīng)用,理解靜態(tài)連編和動(dòng)態(tài)鏈編的區(qū)別。二、實(shí)驗(yàn)時(shí)間:2015年11月26號(hào)三、實(shí)驗(yàn)地點(diǎn):福建工程學(xué)院北教1四、實(shí)驗(yàn)內(nèi)容:1已知基類:classBasepublic:virtualvoidiam()cout<<”Base”<<endl;要求

2、:(1)從Base類中派生出兩個(gè)類,分別定義iam()函數(shù),實(shí)現(xiàn)輸出自己類名的功能。(2)main函數(shù)中完成兩項(xiàng)操作:l 分別創(chuàng)建3個(gè)類的對(duì)象來(lái)調(diào)用iam()函數(shù);l 定義3個(gè)類的對(duì)象指針,將指向派生類的對(duì)象的指針賦值給Base*指針,而后通過(guò)這些指針調(diào)用iam()函數(shù)。程序如下:#include<iostream>usingnamespacestd;classBasepublic:virtualvoidiam()cout<<"Base"<<endl;classBase1:publicBasepublic:voidiam()cout<

3、;<"Base1"<<endl;classBase2:publicBasepublic:voidiam()cout<<"Base2"<<endl;intmain()Baseb;Base1b1;Base2b2;b.iam();b1.iam();b2.iam();Base*p;p=&b;p->iam();p=&b1;p->iam();p=&b2;p->iam();return0;實(shí)驗(yàn)結(jié)果如下:實(shí)驗(yàn)結(jié)果分析:利用虛函數(shù)可以實(shí)現(xiàn)C+的多態(tài),允許將子類類型的指針賦值給父類類型的指針

4、,實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編。2.編寫(xiě)程序,寫(xiě)一個(gè)Shape抽象類,該類有求表面積(get_surface)和體積(get_volume)兩個(gè)純虛函數(shù);由該類派生出圓柱體Cylinder,球體(Sphere),正方體(Cube),計(jì)算圓柱體,球體,正方體的表面積和體積。要求用抽象類實(shí)現(xiàn)。程序如下:#include<iostream>usingnamespacestd;classShapepublic:virtualvoidget_surface()=0;virtualvoidget_volume()=0;classCylinder:publicShapepublic:Cylinder(doubl

5、enewR,doublenewH)radius=newR;height=newH;voidget_surface()cout<<"ThesurfaceoftheCylinder:"<<3.14*2*radius*(radius+height)<<endl;voidget_volume()cout<<"ThevolumeoftheCylinder:"<<3.14*radius*radius*height<<endl;private:doubleradius;doubleheight;c

6、lassSphere:publicShapepublic:Sphere(doublenewR)radius=newR;voidget_surface()cout<<"ThesurfaceoftheSphere:"<<4*3.14*radius*radius<<endl;voidget_volume()cout<<"ThevolumeoftheSphere:"<<4*3.14*radius*radius*radius/3.0<<endl;private:doubleradius;cla

7、ssCube:publicShapepublic:Cube(doublenewL)length=newL;voidget_surface()cout<<"ThesurfaceoftheCube:"<<6*length*length<<endl;voidget_volume()cout<<"ThevolumeoftheCube:"<<length*length*length<<endl;private:doublelength;intmain()Cylindercy(2,2);Sphe

8、resp(4);Cubecu(5);Shape*p;p=&cy;p->get_surface();p->get_volume();p=&sp;p->get_surface();p->get_volume();p=&cu;p->get_surface();p->get_volume();return0;實(shí)驗(yàn)結(jié)果如下:實(shí)驗(yàn)結(jié)果分析:利用抽象類和純虛函數(shù)也可以實(shí)現(xiàn)C+的多態(tài),允許將子類類型的指針賦值給父類類型的指針,實(shí)現(xiàn)動(dòng)態(tài)聯(lián)編,使程序框架更清晰,更簡(jiǎn)潔。3.在上題中,繼續(xù)完善Cube類,對(duì)運(yùn)算符+重載,使得+運(yùn)算符可以實(shí)現(xiàn)兩個(gè)正方體的相加

9、(即邊長(zhǎng)的相加,可通過(guò)display函數(shù)顯示加后的立方體的體積及表面積)。程序如下:#include<iostream>usingnamespacestd;classShapepublic:virtualvoidget_surface()=0;virtualvoidget_volume()=0;/圓柱類、球類此題省略classCube:publicShapepublic:Cube(doublenewL)length=newL;Cubeoperator+(Cube&cu2)returnCube(length+cu2.length);voidget_surface()cout&

10、lt;<"ThesurfaceoftheCube:"<<6*length*length<<endl;voidget_volume()cout<<"ThevolumeoftheCube:"<<length*length*length<<endl;private:doublelength;intmain()Cubec1(2),c2(3);Cubec3(0);c3=c1+c2;c3.get_surface();c3.get_volume();return0;實(shí)驗(yàn)結(jié)果如下:實(shí)驗(yàn)結(jié)果分析:利用運(yùn)算符

11、重載可以對(duì)已有的運(yùn)算符賦予多復(fù)位義,使同一個(gè)運(yùn)算符擁有多種用途,以適應(yīng)不同的數(shù)據(jù)類型。五、實(shí)驗(yàn)結(jié)果分析:實(shí)驗(yàn)第一部分:實(shí)驗(yàn)中,利用虛函數(shù)iam()實(shí)現(xiàn)多態(tài),并在主函數(shù)中以動(dòng)態(tài)聯(lián)編方法驗(yàn)證。利用虛函數(shù)可以實(shí)現(xiàn)C+的多態(tài),允許將子類類型的指針賦值給父類類型的指針。實(shí)驗(yàn)第二部分:實(shí)驗(yàn)中,利用抽象類Shape類和純虛函數(shù)get_surface()和get_volume()實(shí)現(xiàn)多態(tài),并在主函數(shù)中以動(dòng)態(tài)聯(lián)編方法驗(yàn)證。利用抽象類和純虛函數(shù)也可以實(shí)現(xiàn)C+的多態(tài),允許將子類類型的指針賦值給父類類型的指針,使程序框架更清晰,更簡(jiǎn)潔。實(shí)驗(yàn)第三部分:實(shí)驗(yàn)中,利用運(yùn)算符重載賦予“+”重載意義,使Cube類對(duì)象能以明確的棱長(zhǎng)相加的方式相加。利用運(yùn)算符重載可以對(duì)已有的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論