* 輸入描述:
在下面一段類的定義中,自行車類的虛基類為車輛類,機動車類的虛基類也為車輛類,電單車類的基類為自行車類和機動車類,類之間均為公有繼承。
(1)根據上面各類間關係的描述,補全下面程式段中空缺的**
(2)實現程式中宣告的成員函式,注意相應操作中的動作發生的條件不能滿足時應給出提示。
(3)執行程式,享受開摩托的過程。(bb平台上提供了乙個可執行檔案,可以先執行再程式設計。不必申請駕照,這個電單車很安全。)
(4)在報告中回答問題:本題中使用虛基類的好處是什麼?
#include #include#include using namespace std;
enum vehiclestaus ; //車輛狀態:泊車、行進
class vehicle //車輛類
;vehicle::vehicle(int maxs, int w) //建構函式,初始時,當前速度總為0且處在停車狀態
void vehicle:: start() //由rest狀態到running, 初速為1
else }
void vehicle::stop() //由running狀態到rest, 當前速度小於5時,才允許停車
else }
void vehicle::speed_up() //加速,呼叫1次,速度加1
}void vehicle::slow_down() //減速,呼叫1次,速度減1,速度為0時,停車
}class bicycle :virtual public vehicle//(1)自行車類的虛基類為車輛類
};class motorcar :virtual public vehicle//(2)機動車類的虛基類也為車輛類
//定義建構函式
void addpassenger(int p=1); //搭載乘客,超員要拒載,有人下車時,p為負數。當然車上乘客至少有1個(司機)。上下車時要保證安全……
};void motorcar ::addpassenger(int p) //搭載乘客,超員要拒載,有人下車時,p為負數。當然車上乘客至少有1個(司機)。上下車時要保證安全……
status=rest;
passengernum= passengernum+1;
if( passengernum>3) }
class motorcycle: public bicycle,public motorcar//(3)電單車類的基類為自行車類和機動車類
//定義建構函式
void show(); //顯示電單車的執行狀態
};void motorcycle::show()
else
cout<<"車速:"m.show();
cout<}
system("pause");
return 0;
}
執行結果:
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(啟動) 狀態:行進 車速:1/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(加速) 狀態:行進 車速:2/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(加速) 狀態:行進 車速:3/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(加速) 狀態:行進 車速:4/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(加速) 狀態:行進 車速:5/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(加速) 狀態:行進 車速:6/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(停車) 當前車速太快,請減速再停車!狀態:行進 車速:6/90 當前乘員
:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(減速) 狀態:行進 車速:5/90 當前乘員:1/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(有人上車) 車輛正在行駛,請停車後再上下車!狀態:停車 車速:5/90 當前
乘員:2/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(停車) 狀態:停車 車速:0/90 當前乘員:2/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(啟動) 狀態:行進 車速:1/90 當前乘員:2/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(有人下車) 車輛正在行駛,請停車後再上下車!狀態:停車 車速:1/90 當前
乘員:3/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(停車) 狀態:停車 車速:0/90 當前乘員:3/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
操作(啟動) 狀態:行進 車速:1/90 當前乘員:3/3
請操作:1-啟動 2-加速 3-減速 4-有人上車 5-有人下車 6-停車 0-結束
上機感言:
在本題中使用虛基類,避免了因資料成員重複而出現二歧義性問題,雖然可以用限制定義域的方法實現,可在使用過程中易出錯,且不方便!用了虛基類以後,這樣就使最後派生出的類中只有一套資料成員,不會出現此類問題。
第十二周報告二
輸入描述 分別定義teacher 教師 類和cadre 幹部 類,採用多重繼承方式由這兩個類派生出新類teacher cadre 教師兼幹部 要求 1 在兩個基類中都包含姓名 年齡 性別 位址 等資料成員。2 在teacher類中還包含資料成員title 職稱 在cadre類中還包含資料成員post...
第十二周報告四
輸入描述 類的組合與繼承 1 先建立乙個point 點 類,包含資料成員x,y 座標點 2 以point為基類,派生出乙個circle 圓 類,增加資料成員 半徑 基類的成員表示圓心 3 編寫上述兩類中的構造 析構函式及必要的輸入輸出函式 4 定義友元函式int locate,判斷點p在圓c上 圓c...
C 第十二周報告2
高效評分器 作 者 劉江波 完成日期 2011 年 11 月 09 日 版本號 v 11.09 對任務及求解方法的描述部分 輸入描述 選手的原始成績 問題描述 各評委打出的成績介於0 10之間,計分規則為去掉乙個最高分和乙個最低分後取平均。其他要求 輸出錯誤要能馬上重新輸入 評委人數在程式中的修改要...