題目描述:利於虛基類建立乙個類的多重繼承,包含動物(aninal,屬性有名稱,體長,體重和性別),陸生動物(ter_animal,s屬性增加了奔跑速度),水生動物(aqu_animal,屬性增加了游泳速度)和兩棲動物(amp_animal),其中兩棲動物保留了陸生動物和水生動物的屬性。
1、完成4個類的無參和全參建構函式
2、為兩棲動物類設計input函式。可以從鍵盤輸入動物屬性
3、為兩棲動物類設計display函式,可以輸出動物屬性
4、在主函式中宣告兩棲動物陣列,包含3個兩棲動物,呼叫input()函式從鍵盤輸入3個兩棲動物的名稱 、體長、體重、性別、奔跑速度和游泳速度,按游泳速度從快到慢排序後,在呼叫display()函式輸出這3個兩棲動物的資訊
#include#includeusing namespace std;
//基類
class animal
animal(string nam,string s,float l,float w):name(nam),***(s),length(l),weight(w){}
void input0();
void output0()
//直接派生類,繼承虛基類
class ter_animal:virtual public animal
ter_animal(string nam,string s,float l,float w,int sp):animal(nam,s,l,w)
void input1()
protected:
int runspeed;
};//直接派生類,繼承虛基類
class aqu_animal:virtual public animal
aqu_animal(string nam,string s,float l,float w,int sp):animal(nam,s,l,w)
void input2()
int swimspeed;
};//多重繼承的派生類
class amp_animal:public ter_animal,public aqu_animal
amp_animal(string nam,string s,float l,float w,int sp1,int sp2):animal(nam,s,l,w),ter_animal(nam,s,l,w,sp1),aqu_animal(nam,s,l,w,sp2){}
void input()
int main()
多重繼承 虛繼承與虛基類
一 多重繼承 單重繼承 乙個派生類最多只能有乙個基類 多重繼承 乙個派生類可以有多個基類 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 元件,因此...