![C上機實驗報告實驗六_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b7/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b71.gif)
![C上機實驗報告實驗六_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b7/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b72.gif)
![C上機實驗報告實驗六_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/11/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b7/130044d9-cb84-42fe-9fa0-f0f0ec7ea3b73.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、實驗六實驗?zāi)康恼莆者\算符重載的方法學(xué)習(xí)使用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性實驗要求定義Point類,有坐標(biāo)_x,_y兩個成員變量;對Point類重載"+”(自增)、“”(自減)運算符,實現(xiàn)對坐標(biāo)值而改變。1. 定義一個車(vehiele)基類,有RunStop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有RunStop等成員函數(shù)。觀察虛函數(shù)的作用。2. (選做)對實驗4中的People類重載“=”運算符和“”運算符,“=”運算符判斷兩個people類對象的id屆性是否相等;“”運算符
2、實現(xiàn)People類對象的賦值操作。實驗內(nèi)容及實驗步驟1.編寫程序定義Point類,在類中定義整型的私有成員變量_x_y,定義成員函數(shù)Point&operator+();Pointoperator+(int);以實現(xiàn)對Point類重載"+”(自增)運算符,定義成員函數(shù)Point&operator();Pointoperator(int);以實現(xiàn)對Point類重載”(自減)運算符,實現(xiàn)對坐標(biāo)值的改變。程序名:1ab8_1.Cpp#include<iostream>usingnamespacestd;classPointpublic:Point();Point(
3、intx,inty);Point()Point&operator+();Pointoperator+(int);Point&operator-();Pointoperator-(int);voidShow();private:int_x;int_y;Point:Point()_x=0;_y=0;Point:Point(intx,inty)/Point/Point/Point類析構(gòu)函數(shù)公有成員函數(shù)私有數(shù)據(jù)成員類構(gòu)造函數(shù)類構(gòu)造函數(shù)(_x=x;_y=y;Point&Point:operator+()/(_x+;_y+;PointPoint:operator+(int)/(Po
4、intold=*this;+(this->_x);+(this->_y);returnold;Point&Point:operator-()/(_x-;_y-;PointPoint:operator-(int)/(Pointold=*this;-(this->_x);-(this->_y);returnold;voidPoint:Show()/(cout<<_x<<”,"<<_y<<”)”<<endl;intmain()(Pointa(2,3);/Pointb=a+;/Pointc=+a;/P
5、ointd=-a;/Pointe=a-;/cout<<"Pointa("a.Show();/cout<<"Pointb("b.Show();/cout<<"Pointc("重載后置+運算符為Point類成員函數(shù)重載前置+運算符為Point類成員函數(shù)重載后置-運算符為Point類成員函數(shù)重載前置-運算符為Point類成員函數(shù)輸出Point的坐標(biāo)值定義一個Point類對象a定義Point類對象b并用a+初始化b定義Point類對象c并用+a初始化c定義Point類對象d并用-a初始化d定義Point類對
6、象e并用a-初始化e輸出a的坐標(biāo)輸出b的坐標(biāo)c.Show();/輸出c的坐標(biāo)cout<<"Pointd("d.Show();cout<<"Pointe("/輸出d的坐標(biāo)e.Show();return0;/輸出e的坐標(biāo)運行結(jié)果:2編寫程序定義一個車(vehicle)基類,有Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。在main()函數(shù)中定義vehicle、bicycle、mo
7、torcar、motorcycle的對象,調(diào)用其Run()、Stop()函數(shù),觀察其執(zhí)行情況。再分別用vehicle類型的指針來調(diào)用這幾個對象的成員函數(shù),看看能否成功;把Run、Stop定義為虛函數(shù),再試試看。程序名:lab8_2.cpp#include<iostream>usingnamespacestd;classvehicle/基類vehiclepublic:vehicle()vehicle()virtualvoidRun()cout<<"Thevehicleisrunning!"<<endl;/定義虛函數(shù)Run()virtualv
8、oidStop()cout<<"Thevehiclehasstopped!"<<endl;/定義虛函數(shù)Stop();classbicycle:virtualpublicvehicle/定義派生類bicycle,聲明基類為派生類的虛基類public:voidRun()cout<<"Thebicycleisrunning!"<<endl;voidStop()cout<<"Thebicyclehasstopped!"<<endl;bicycle()bicycle();c
9、lassmotorcar:virtualpublicvehicle/定義派生類motorcar,聲明基類為派生類的虛基類public:voidRun()cout<<"Themotorcarisrunning!"<<endl;voidStop()cout<<"Themotorcarhasstopped!"<<endl;motorcar()motorcar();classmotorcycle:publicbicycle,publicmotorcar/以bicycle類和motorcar類作為基類派生新類moto
10、rcyclepublic:voidRun()cout<<"Themotorcycleisrunning!"<<endl;voidStop()cout<<"Themotorcyclehasstopped!"<<endl;intmain()vehiclea;/的一個對象avehicle*p;/vehicle類的指針bicycleb;/的對象bmotorcarc;/類的對象cmotorcycled;/類的對象d定義vehicle類定義一個定義bicycle類定義motorcar定義motorcyclea.Run(
11、);Stop();Run();b.Stop();c.Run();c.Stop();d.Run();d.Stop();p=&a;/使指針p指向vehicle類對象ap->Run();/通過指針調(diào)用vehicle類成員函數(shù)p->Stop();p=&b;/使指針p指向bicycle類對象bp->Run();/通過指針調(diào)用bicycle類成員函數(shù)p->Stop();p=&c;/使指針p指向motorcar類對象cp->Run();/通過指針調(diào)用motorcar類成員函數(shù)p->Stop();p=&d;/使指針指向motorbicycle
12、類對象dp->Run();/通過指針調(diào)用motorcycle類成員函數(shù)p->Stop();return0;運行結(jié)果:3.(選做)對實驗4中的People類重載“=”運算符和“”運算符,“=”運算符判斷兩個people類對象的id屆性是否相等;賦值操作。源程序:#include<iostream>#include<string>usingnamespacestd;classBirthdaypublic:Birthday(intYear,intMonth,intDay);Birthday()/Birthday()/Birthday(Birthday&p)
13、;/intshowBirthday()cout<<year<<"年"<<month<<"月"<<day<<"日intenter();private:intyear,month,day;Birthday:Birthday(Birthday&p)運算符實現(xiàn)People類對象的/II;/構(gòu)造函數(shù)構(gòu)造函數(shù)析構(gòu)函數(shù)復(fù)制構(gòu)造函數(shù)內(nèi)聯(lián)成員函數(shù)year=p.year;month=p.month;day=p.day;Birthday:Birthday(intYear,intMonth
14、,intDay)/Birthday類構(gòu)造函數(shù)year=Year;month=Month;day=Day;intBirthday:enter()cout<<"生日:"cin>>year>>month>>day;classpeople/定義people類public:people()(/peoplepeople()(/peoplepeople(people&p);peopleoperator=(people&);peopleoperator-(people&);intshow();intenter();pr
15、ivate:stringnumber,id,sex;/Birthdayp1;/Birthday;intpeople:show()(cout<<"n性別"<<sex<<"編號"cout<<number;cout<<"生日"p1.showBirthday();/cout<<"身份證號"<<id<<endl;intpeople:enter()(p1.enter();cout<<"性別:";cin
16、>>sex;cout<<"編號:"cin>>number;cout<<"身份證號:"cin>>id;people:people(people&p):p1(p.p1)/people(number=p.number;sex=p.sex;id=p.id;peoplepeople:operator=(people&V)/(if(id=V.id)(cout<<"havethesameid!"<<endl;else(cout<<&quo
17、t;havedifferentid!"<<endl;類構(gòu)造函數(shù)類析構(gòu)函數(shù)字符申類型變量數(shù)據(jù)成員類數(shù)據(jù)成員調(diào)用Birthday類成員函數(shù)類復(fù)制構(gòu)造函數(shù)重載=運算符成員函數(shù)number=U.number;sex=U.sex;id=U.id;p1=U.p1;return*this;/intmain()(intt;peoplep2;/for(t=0;t<2;t+)/使用字符申賦值運算符返回this指釘定義對象數(shù)組p2輸入對象數(shù)組成員信息(cout<<"輸入第"<<t+1<<"個人員的信息"<&
18、lt;endl;pt.enter();for(t=0;t<2;t+)/輸出對象數(shù)組成員信息(cout<<"n第"<<t+1<<"個人員信息如下:"<<endl;pt.show();peoplep3;/定義people類的對象p3p3-p1;/使用重載運算符將p1賦給p3cout<<"n第3個人員信息如下:"<<endl;p3.show();cout<<"p0,p1"p0=p1;/使用重載運算符-判斷p0和p1的id是否相等return0;運行結(jié)果:1. 思考題如何將一個運算符重載為類的成員函數(shù)?一般語法形式:2. 返回類型operator運算符(形參表)(函數(shù)體函數(shù)的參數(shù)個數(shù)比原來的曹祖數(shù)個數(shù)要少一個(后置“+”,“-”除外)如何將一個運算符重載為類的友元函數(shù)?一般形式:friend返回類型op
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (高清版)DB37∕T 2104-2012 工業(yè)鍋爐系統(tǒng)能效評價規(guī)則
- 2025年雪褸項目投資可行性研究分析報告
- 2025年降壓計項目投資可行性研究分析報告-20241226-205250
- 2025年度冷鏈倉儲庫房場地租賃合同
- 人才培養(yǎng)的政策保障體系
- 2025年度講師教育投資與融資合同
- 教育內(nèi)容與產(chǎn)業(yè)需求精準(zhǔn)對接需求分析
- 服務(wù)消費券的宣傳與推廣策略
- 2025年度數(shù)字經(jīng)濟合作聯(lián)盟協(xié)議范本
- 2025年度政府投資項目審計服務(wù)行政合同
- DB32-T 186-2015建筑消防設(shè)施檢測技術(shù)規(guī)程
- 中考英語1600詞匯對照表-(帶音標(biāo))
- 虛擬化與云計算技術(shù)應(yīng)用實踐項目化教程 課件全套 陳寶文 項目1-8 虛擬化與云計算導(dǎo)論- 騰訊云服務(wù)
- (正式版)JBT 7248-2024 閥門用低溫鋼鑄件技術(shù)規(guī)范
- 2024廣東高壓電工考試電工證考試題模擬試題(全國版)
- 人工智能小學(xué)生科普書
- (高清版)TDT 1056-2019 縣級國土資源調(diào)查生產(chǎn)成本定額
- 化學(xué)實驗室設(shè)備期間核查規(guī)程匯編2019.9最終版
- 防止分心駕駛的方法
- 中藥熏洗的并發(fā)癥及預(yù)防
- 小學(xué)高年級數(shù)學(xué)閱讀能力的培養(yǎng)與
評論
0/150
提交評論