車輛類多重繼承中使用虛基類

2021-06-20 14:12:11 字數 1064 閱讀 9946

【專案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 元件,因此...