【專案3】在下面一段類的定義中,自行車類的虛基類為車輛類,機動車類的虛基類也為車輛類,電單車類的基類為自行車類和機動車類,類之間均為公有繼承。
(1)根據上面各類間關係的描述,補全下面程式段中空缺的**
(2)實現程式中宣告的成員函式,注意相應操作中的動作發生的條件不能滿足時應給出提示。
資源中乙個可執行檔案,可以先執行再程式設計。不必申請駕照,這個電單車很安全。)
(4)在報告中回答問題:本題中使用虛基類的好處是什麼?
#include #include#include using namespace std;
enum vehiclestaus ; //車輛狀態:泊車、行進
class vehicle //車輛類
int getspeed2()
int getweight()
vehiclestaus getstatus()
};vehicle::vehicle(int maxs, int w):maxspeed(maxs),weight(w),currentspeed(0),status(rest){}
void vehicle::start()
void vehicle::stop()
void vehicle::speed_up()
class bicycle :virtual public vehicle//(1)自行車類的虛基類為車輛類
};bicycle::bicycle(int maxs, int w, int h):vehicle(maxs, w),height(h){}
class motorcar :virtual public vehicle //(2)機動車類的虛基類也為車輛類
int getpassenger()
};motorcar::motorcar(int maxs, int w, int s, int p):vehicle(maxs, w),seatnum(s),passengernum(p){}
void motorcar::addpassenger(int p)
return 0;
}
多重繼承 虛繼承與虛基類
一 多重繼承 單重繼承 乙個派生類最多只能有乙個基類 多重繼承 乙個派生類可以有多個基類 class 類名 繼承方式 基類1,繼承方式 基類2,派生類同時繼承多個基類的成員,更好的軟體重用 可能會有大量的二義性,多個基類中可能包含同名變數或函式 多重繼承中解決訪問歧義的方法 基類名 資料成員名 或成...
多重繼承與虛基類
多重繼承 multiple inheritance,mi 虛基類虛基類使得從多個類 它們的基類相同 派生出的物件只繼承乙個基類物件。通過使用關鍵字virtual。例如,可以使worker被用作singer和waiter的虛基類 virtual和public的次序無關緊要 class singer v...
C 多重繼承 虛基類
使用多個基類的繼承被稱為多重繼承 mi mi描述的是有多個直接基類的類。與單繼承一樣,公有mi表示的也是 is a關係。mi帶來的兩個主要問題 1.從兩個不同的基類繼承同名方法。2.從兩個或更多相關基類那裡繼承同一類的多個例項。例如 singer 和 waiter都繼承了乙個worker 元件,因此...