![實(shí)驗(yàn)四 多態(tài)性_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/69d8dc81-d5b8-47de-bada-c2f51e4f8eee/69d8dc81-d5b8-47de-bada-c2f51e4f8eee1.gif)
![實(shí)驗(yàn)四 多態(tài)性_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/69d8dc81-d5b8-47de-bada-c2f51e4f8eee/69d8dc81-d5b8-47de-bada-c2f51e4f8eee2.gif)
![實(shí)驗(yàn)四 多態(tài)性_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/69d8dc81-d5b8-47de-bada-c2f51e4f8eee/69d8dc81-d5b8-47de-bada-c2f51e4f8eee3.gif)
![實(shí)驗(yàn)四 多態(tài)性_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/69d8dc81-d5b8-47de-bada-c2f51e4f8eee/69d8dc81-d5b8-47de-bada-c2f51e4f8eee4.gif)
![實(shí)驗(yàn)四 多態(tài)性_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-10/2/69d8dc81-d5b8-47de-bada-c2f51e4f8eee/69d8dc81-d5b8-47de-bada-c2f51e4f8eee5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)四 多態(tài)性一、實(shí)驗(yàn)?zāi)康?、掌握運(yùn)算符重載的基本方法。2、掌握友元運(yùn)算符函數(shù)和成員運(yùn)算符函數(shù)的使用方法及兩者之間的不同。3、學(xué)習(xí)虛函數(shù)的定義與使用方法。4、了解靜態(tài)多態(tài)性和動(dòng)態(tài)多態(tài)性。5、學(xué)習(xí)使用虛函數(shù)和繼承實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。二、試驗(yàn)內(nèi)容1、編寫一個(gè)程序,要求:(1)生明一個(gè)類Complex(復(fù)數(shù)類),定義類Complex的兩個(gè)對(duì)象c1和c2,對(duì)象c1通過構(gòu)造函數(shù)直接指定復(fù)數(shù)的實(shí)部和虛部(類私有數(shù)據(jù)成員為double類型:real和imag)為2.5及3.7,對(duì)象c2通過構(gòu)造函數(shù)直接指定復(fù)數(shù)的實(shí)部和虛部為4.2及6.5;(2)定義友元運(yùn)算符重載函數(shù),它以c1、c2對(duì)象為參數(shù),調(diào)用該函數(shù)時(shí)能返回
2、兩個(gè)復(fù)數(shù)對(duì)象相加操作;(3)定義成員函數(shù)print,調(diào)用該函數(shù)時(shí),以格式“real+imag i”輸出當(dāng)前對(duì)象的實(shí)部和虛部,例如:對(duì)象的實(shí)部和虛部分別是4.2和6.5,則調(diào)用print函數(shù)輸出格式為:4.2+6.5 i;(4)編寫主程序,計(jì)算出復(fù)數(shù)對(duì)象c1和c2相加結(jié)果,并將其結(jié)果輸出。#includeclass complexprivate:double real;double imag;public:complex(double r=0.0,double i=0.0);void print();friend complex operator+(complex &a,complex &b);
3、complex:complex(double r,double i)real=r;imag=i;complex operator+(complex &a,complex &b)complex temp;temp.imag=a.imag+b.imag;temp.real=a.real+b.real;return temp;void complex:print()coutreal+imagiendl;int main()complex c1(2.5,3.7),c2(4.2,6.5),c3;c3=c1+c2;c3.print();return 0;2、編寫一個(gè)程序,其中設(shè)計(jì)一個(gè)時(shí)間類Time,用來保
4、存時(shí)、分、秒等私有數(shù)據(jù)成員,通過重載操作符“+”實(shí)現(xiàn)兩個(gè)時(shí)間的相加。要求將小時(shí)范圍限制在大于等于0,分鐘范圍限制在059分,秒鐘范圍限制在059秒。提示:時(shí)間類Time的參考框架如下:class Time public: Time(int h=0,int m=0,int s=0);/構(gòu)造函數(shù) Time operator+(Time &);/運(yùn)算符重載函數(shù),實(shí)現(xiàn)兩個(gè)時(shí)間的相加 Time operator+();/運(yùn)算符重載函數(shù),實(shí)現(xiàn)兩個(gè)時(shí)間的相加 void disptime();/顯示時(shí)間函數(shù) private: int hours,minutes,seconds;#include#include
5、class Time public: Time(int h=0,int m=0,int s=0);/構(gòu)造函數(shù) Time operator+(Time &);/運(yùn)算符重載函數(shù),實(shí)現(xiàn)兩個(gè)時(shí)間的相加 Time operator+();/運(yùn)算符重載函數(shù),實(shí)現(xiàn)兩個(gè)時(shí)間的相加 void disptime();/顯示時(shí)間函數(shù) private: int hours,minutes,seconds;Time:Time(int h,int m,int s)hours=h;minutes=m;seconds=s;Time Time:operator +(Time &t1) Time p; p.seconds=sec
6、onds+t1.seconds; int t=p.seconds; p.seconds=t%60; p.minutes=minutes+t1.minutes+t/60; int m=p.minutes; p.minutes=m%60; p.hours=hours+t1.hours+m/60; return p;void Time:disptime() couthours時(shí)minutes分seconds秒endl;int main()Time t1(12,20,33),t2(5,17,58),t3;t3=t1+t2;cout時(shí)間t1endl;t1.disptime();cout時(shí)間t2endl;
7、t2.disptime();cout相加后的時(shí)間:endl;t3.disptime();return 0;3、寫一個(gè)程序,定義抽象類Container:class Container protected: double radius; public: Container(double r);/抽象類Container的構(gòu)造函數(shù) virtual double surface_area()=0;/純虛函數(shù)surface_area virtual double volume()=0;/純虛函數(shù)volume ;【要求】建立3個(gè)繼承Container的派生類:Sphere(球體)、Cylinder(圓柱
8、體)、Cube(正方體),讓每一個(gè)派生類都包含虛函數(shù)surface_area()和volume(),分別用來球體、圓柱體和正方體的表面積和體積。要求寫出主程序,應(yīng)用C+的多態(tài)性,分別計(jì)算邊長為6.0的正方體、半徑為5.0的球體,以及半徑為5.0和高為6.0的圓柱體的表面積和體積。#includeusing namespace std; class Container protected: double radius; public: Container(double r);/抽象類 Container 的構(gòu)造函數(shù) virtual double surface_area()=0;/純虛函數(shù)sur
9、face_area virtual double volume()=0;/純虛函數(shù)volume ; Container:Container(double r=0) radius=r; class Sphere:public Container public: Sphere(double x):Container(x) double surface_area() return 4*radius*radius*3.14; double volume() return 0.75*3.14*radius*radius*radius; ; class Cylinder:public Container
10、public: Cylinder(double h,double r):Container(r) hight=h; double surface_area() return 2*3.14*radius*radius+2*3.14*radius*hight; double volume() return 3.14*radius*radius*hight; protected: double hight; ; class Cube:public Container public: Cube(double r):Container(r) double surface_area() return 6*
11、radius*radius; double volume() return radius*radius*radius; ; int main() Container *p; Cube a(6.0); p=&a; cout正方體表面積:surface_area()endl; cout正方體體積:volume()endl; Sphere b(5.0); p=&b; cout球表面積:surface_area()endl; cout球體積:volume()endl; Cylinder c(6.0,5.0); p=&c; cout圓柱表面積:surface_area()endl; cout圓柱體體積:
12、volume()endl; return 0; 4、設(shè)計(jì)一個(gè)點(diǎn)類Point,其結(jié)構(gòu)如下:(1) Point類表示二維平面點(diǎn)的集合,數(shù)據(jù)成員由點(diǎn)的坐標(biāo)值表示,類型為int;(2) 三個(gè)重載構(gòu)造函數(shù):a) 一個(gè)是無參數(shù)的構(gòu)造函數(shù);b) 一個(gè)是帶坐標(biāo)值參數(shù)的構(gòu)造函數(shù),實(shí)現(xiàn)對(duì)數(shù)據(jù)成員的初始化;c) 一個(gè)是copy構(gòu)造函數(shù),實(shí)現(xiàn)用一個(gè)對(duì)象初始化本對(duì)象;(3) 兩個(gè)重載成員函數(shù):a) void offert(int , int ); 實(shí)現(xiàn)點(diǎn)的偏移,參數(shù)是偏移量;b) void offert(Point &); 實(shí)現(xiàn)點(diǎn)的偏移,參數(shù)Point類對(duì)象是偏移量;(4) 6個(gè)運(yùn)算符重載函數(shù):a) bool oper
13、ator = = (Point &);判斷兩個(gè)點(diǎn)對(duì)象是否相等;b) void operator + =(Point &);將兩個(gè)點(diǎn)對(duì)象相加;c) void operator +();將當(dāng)前對(duì)象自增1(前綴);d) void operator +(int );將當(dāng)前對(duì)象自增1(后綴);e) friend Point& operator + (Point &, Point &);將兩個(gè)點(diǎn)對(duì)象相加;f) friend Point &operator (Point &, Point &);將兩個(gè)點(diǎn)對(duì)象相減;(5) 兩個(gè)成員函數(shù)提供實(shí)例對(duì)象對(duì)私有數(shù)據(jù)的訪問:a) int GetX();b) int Ge
14、tY();(6)公有成員函數(shù)void Display();輸出對(duì)象的數(shù)據(jù)成員;#includeclass Pointprivate:int x;int y;public:Point() x=0; y=0;Point(int a,int b) x=a; y=b;Point(const Point &p)x=p.x; y=p.y;void offert(int,int);void offert(Point &);bool operator=(Point &);void operator+=(Point &);void operator+();void operator+(int); friend
15、Point& operator+(Point &, Point &);friend Point& operator-(Point &, Point &); void display(); int GetX() return x; int Gety() return y;void Point:offert(int a,int b) x+=a; y+=b;void Point:offert(Point &p) x+=p.x; y+=p.y;bool Point:operator=(Point &p) if(x=p.x&y=p.y) cout=endl; else cout!=endl; retur
16、n 0;void Point:operator+=(Point &p)x+=p.x;y+=y+p.y;void Point:operator+() x+;void Point:operator+(int) y+;Point&operator+(Point &a,Point &b) a.x=a.x+b.x;a.y=a.y+b.y; return a;Point&operator-(Point &a,Point &b) a.x=a.x-b.x;a.y=a.y-b.y; return a;void Point:display()cout(x,y)endl;int main() Point a(2,2),b(4,5),c(3,1),d,e,f,g(5,3),h;couta坐標(biāo);a.display(); coutb坐標(biāo);b.di
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年UV防潮樹脂項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年中國驅(qū)蟲蚊帳數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國負(fù)離子自動(dòng)調(diào)溫立體電棒燙數(shù)據(jù)監(jiān)測研究報(bào)告
- 辦公范例購買合同范例
- 2020-2025年中國減速器行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年中國互聯(lián)網(wǎng)+服裝行業(yè)發(fā)展前景預(yù)測及投資規(guī)劃建議報(bào)告
- 提升復(fù)合型人才培養(yǎng)質(zhì)量的策略
- 中國石化購油合同范本
- 2025年加油站安全管理及事故應(yīng)急預(yù)案合同
- epc內(nèi)部合同范例
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 數(shù)據(jù)中心運(yùn)維服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 幼兒園一日活動(dòng)流程教師培訓(xùn)
- 2025江蘇連云港市贛榆城市建設(shè)發(fā)展集團(tuán)限公司招聘工作人員15人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 征信入校園教育課件
- 2025年全年日歷-含農(nóng)歷、國家法定假日-帶周數(shù)豎版
- 部編版小學(xué)語文二年級(jí)下冊第三單元集體備課教材分析
- 一年級(jí)上冊必背古詩
- 平頂山第四屆名師名班主任名校長培養(yǎng)方案
- 蒸壓加氣混凝土砌塊作業(yè)指導(dǎo)書(共14頁)
評(píng)論
0/150
提交評(píng)論