版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
中北大學(xué)計(jì)算機(jī)與控制工程學(xué)院實(shí)驗(yàn)報(bào)告課程名稱面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)號1507084143學(xué)生姓名劉安光輔導(dǎo)教師韓慧妍專業(yè)網(wǎng)絡(luò)工程實(shí)驗(yàn)室名稱軟件基礎(chǔ)實(shí)驗(yàn)室實(shí)驗(yàn)時(shí)間2016.11.301.實(shí)驗(yàn)名稱實(shí)驗(yàn)七多態(tài)和重載實(shí)驗(yàn)?zāi)康模?)掌握運(yùn)算符重載的方法(2)學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)性。實(shí)驗(yàn)內(nèi)容(1)定義Point類,有坐標(biāo)x,y兩個(gè)成員變量;對Point類重載“++”(自增)、“一一”(自減)運(yùn)算符,實(shí)現(xiàn)對坐標(biāo)值的改變。(2)定義一個(gè)車(vehicle)基類,有Run、Stop等成員函數(shù),由此派生出自行車(bicycle)類、汽車(motorcar)類,從bicycle和motorcar派生出摩托車(motorcycle)類,它們都有Run、Stop等成員函數(shù)。觀察虛函數(shù)的作用。實(shí)驗(yàn)原理或流程圖運(yùn)算符重載(C++)一、運(yùn)算符重載機(jī)制:一元運(yùn)算符:@obj=>operator@(obj);二元運(yùn)算符:obj@obj2=>operator@(obj,obj2)注意:后置++、--這樣處理:obj++=>operator++(obj,0)二、除了.、.*、::、?:、sizeof這5個(gè)運(yùn)算符之外,其他一概都可以重載。三、普通運(yùn)算符重載:1.重載為類的友元函數(shù);2.重載為類的成員函數(shù);1)一般情況下,單目運(yùn)算符最好重載為類的成員函數(shù);雙目運(yùn)算符則最好重載為類的友元函數(shù)。2)一些雙目運(yùn)算符不能重載為類的友元函數(shù):=、()、[]、->。3)若一個(gè)運(yùn)算符的操作需要改變對象的狀態(tài),選擇重載為成員函數(shù)較好。4)若運(yùn)算符所需的操作數(shù)(尤其第一個(gè)操作數(shù))希望有隱式類型轉(zhuǎn)換,則只能選用友元函數(shù)。5)當(dāng)運(yùn)算符函數(shù)是一個(gè)成員函數(shù)時(shí),最左邊的操作數(shù)必須是運(yùn)算符類的一個(gè)類對象或其引用。若左邊的操作數(shù)必須是一個(gè)不同類的對象,或者是一個(gè)基本數(shù)據(jù)類型的對象,該運(yùn)算符函數(shù)必須作為一個(gè)友元函數(shù)來實(shí)現(xiàn)。6)當(dāng)需要重載運(yùn)算符的運(yùn)算具有可交換性時(shí),選擇重載為友元函數(shù)。虛函數(shù):虛函數(shù)是C++實(shí)現(xiàn)動(dòng)態(tài)單分派子類型多態(tài)(dynamicsingle-dispatchsubtypepolymorphism)的方式。動(dòng)態(tài):在運(yùn)行時(shí)決定的(相對的是靜態(tài),即在編譯期決定,如函數(shù)重載、模板類的非虛函數(shù)調(diào)用)單分派:基于一個(gè)類型去選擇調(diào)用哪個(gè)函數(shù)(相對于多分派,即由多個(gè)類型去選擇調(diào)用哪個(gè)函數(shù))子類型多態(tài):以子類型-超類型關(guān)系實(shí)現(xiàn)多態(tài)(相對于用參數(shù)形式,如函數(shù)重載、模版參數(shù))實(shí)驗(yàn)過程或源代碼填寫實(shí)際上機(jī)操作的實(shí)驗(yàn)步驟或主要源代碼實(shí)驗(yàn)(1)//Point.hclassPoint{private:intx,y;public:Point(intx,inty);Point();Pointoperator++();Pointoperator++(int);Pointoperator--();Pointoperator--(int);voidprint();};//Point.cpp#include<iostream>#include"Point.h"usingnamespacestd;Point::Point(){}Point::Point(intx,inty){this->x=x;this->y=y;}PointPoint::operator++(){++x;++y;return*this;//返回自增后當(dāng)前對象的值}PointPoint::operator++(int){Pointteam(*this);x++;y++;returnteam;//返回自增前當(dāng)前對象的值}PointPoint::operator--(){--x;--y;return*this;//返回自減后當(dāng)前對象的值}PointPoint::operator--(int){Pointteam(*this);X--;y--;returnteam;//返回自減前當(dāng)前對象的值voidPoint::print(){cout<<"x:"<<x<<",y:"<<y<<endl;//main.cpp#include"Point.h"intmain(){Pointa(3,4);Pointb=a--;print();print();--a;a.print();a--;a.print();++a;a.print();a++;a.print();return0;實(shí)驗(yàn)(2)//vehicle.h#pragmaonceclassvehicle{private:doubleMaxSpeed;doubleWeight;public:virtualvoidRun();virtualvoidStop();};//vehicle.cpp#include<iostream>#include"vehicle.h"usingnamespacestd;voidvehicle::Run(){cout<<"Thisisvehicle'sRun"<<endl;}voidvehicle::Stop(){cout<<"Thisisvehicle'sStop"<<endl;}//bicycle.h#include"vehicle.h"classbicycle:virtualpublicvehicle{private:doubleheight;public:virtualvoidRun();virtualvoidStop();};//bicycle.cpp#include<iostream>#include"bicycle.h"usingnamespacestd;voidbicycle::Run(){cout<<"Thisisbicycle'sRun"<<endl;}voidbicycle::Stop(){cout<<"Thisisbicycle'sStop"<<endl;}//motorcar.h#include"vehicle.h"classmotorcar:virtualpublicvehicle{private:intSeatNum;public:virtualvoidRun();virtualvoidStop();};//motorcar.cpp#include<iostream>#include"motorcar.h"usingnamespacestd;voidmotorcar::Run(){cout<<"Thisismotorcar'sRun"<<endl;}voidmotorcar::Stop(){cout<<"Thisismotorcar'sStop"<<endl;}//motorcycle.h#include"bicycle.h"#include"motorcar.h"classmotorcycle:publicbicycle,publicmotorcar{private:public:virtualvoidRun();virtualvoidStop();};//motorcycle.cpp#include<iostream>#include"motorcycle.h"usingnamespacestd;voidmotorcycle::Run(){cout<<"Thisismotorcycle'sRun"<<endl;}voidmotorcycle::Stop(){cout<<"Thisismotorcycle'sStop"<<endl;}//main.cpp#include<iostream>#include"motorcycle.h"usingnamespacestd;intmain(){cout<<”各對象調(diào)用自己的成員函數(shù):"<<endl;vehicleche;che.Run();che.Stop();bicyclezixingche;zixingche.Run();zixingche.Stop();motorcarqiche;qiche.Run();qiche.Stop();motorcyclemotoche;motoche.Run();motoche.Stop();cout<<endl<<”用vehicle類型的指針來調(diào)用這幾個(gè)對象的成員函數(shù):"<<endl;vehicle*c;c=&zixingche;c->Run();c->Stop();c=&qiche;c->Run();c->Stop();c=&motoche;c->Run();c->Stop();return0;}實(shí)驗(yàn)結(jié)論及心得填寫本次實(shí)驗(yàn)的輸出結(jié)果(如果有輸出的話)、存在的問題、心得等內(nèi)容x:2,y:3x:3,y:4x:1,y:2x:0,y:lx:1,y:2x:2,y:3請矮任意鍵繼續(xù)...各計(jì)輯調(diào)用自己的成員函數(shù):Thisisvehicle,sRunThisisvehicle,sStopThisisbicycle,sRunThisisbicycle,sStopThisismotorcar,sRunThisismotorcar,sStopThisismotorcycle1sRunThisismotorcycle1sStop用vehicle類裂的捐針來調(diào)用這幾個(gè)對象的成員函數(shù):Thisisvehicle,sRunThisisvehicle,sStopThisisvehicle,sRunThisisvehiclensStopThisisvehiclensRunThisisvehiclensStop請按任意鍵繼續(xù)....各計(jì)慝調(diào)用耳己即成員函數(shù):Thisisvehicle,sRunThisisvehicle,sStopThisisbicycle,sRunThisisbicycle,sStopThisismotorcar1sRunThisismot
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高校與企業(yè)合作協(xié)議教授聘請合同范本3篇
- 2025版木門企業(yè)安全生產(chǎn)責(zé)任書合同范本2篇
- 2025年分期付款運(yùn)動(dòng)服裝合同
- 2025年分期室內(nèi)設(shè)計(jì)服務(wù)合同
- 跨國集團(tuán)2025年度全球營銷戰(zhàn)略合同2篇
- 2025年版?zhèn)€人汽車買賣合同示范文本3篇
- 2025年汽車配件贈(zèng)與協(xié)議
- 二零二五年敬老院養(yǎng)老用品銷售與售后服務(wù)合同規(guī)范3篇
- 2025版教育培訓(xùn)機(jī)構(gòu)合作協(xié)議樣本3篇
- 2025版學(xué)生實(shí)訓(xùn)基地實(shí)習(xí)就業(yè)保障服務(wù)合同3篇
- 《社會工作實(shí)務(wù)》全冊配套完整課件3
- 單位違反會風(fēng)會書檢討書
- 2024年4月自考00832英語詞匯學(xué)試題
- 《電力用直流電源系統(tǒng)蓄電池組遠(yuǎn)程充放電技術(shù)規(guī)范》
- 《哪吒之魔童降世》中的哪吒形象分析
- 信息化運(yùn)維服務(wù)信息化運(yùn)維方案
- 汽車修理廠員工守則
- 公安交通管理行政處罰決定書式樣
- 10.《運(yùn)動(dòng)技能學(xué)習(xí)與控制》李強(qiáng)
- 冀教版數(shù)學(xué)七年級下冊綜合訓(xùn)練100題含答案
- 1神經(jīng)外科分級護(hù)理制度
評論
0/150
提交評論