// 12_29_study.cpp: 定義控制台應用程式的入口點。
//#include "stdafx.h"
#include using namespace std;
//菱形繼承---多繼承
//兩個類共同繼承於同乙個類;
class animal
;class sheep1 :public animal
;class tuo1 :public animal
;class sheeptuo1 :public sheep1, public tuo1
;void test01()
//輸出均為10;
//只要乙份資料,避免資源浪費和混亂
//菱形問題的解決方案:利用虛繼承;
//加上virtual關鍵字
class sheep2 :virtual public animal
;class tuo2 :virtual public animal
;class sheeptuo2 :virtual public sheep2, virtual public tuo2
;void test02()
//輸出均為20;
//實際上操作的是乙份共享的資料;
int main()
C 多繼承 菱形繼承 虛繼承
b和c都單繼承了a d繼承了b和c 是多繼承 有兩個或兩個以上的基類就是多繼承 class a public int ma class b public a public int mb class c public a public int mc class d public b,public c ...
C 繼承6 虛繼承 菱形繼承
建立 1.farmer類,資料成員 m strname,成員函式 構造 析構 sow 2.worker類,資料成員 m strcode,成員函式 構造 析構 carry 3.migrantworker類,資料成員 無,成員函式 構造 析構 4.person類,資料成員 m strcolor,成員函式...
c 多重繼承 虛繼承 菱形繼承
多重繼承的特性和使用和單繼承沒區別。按照單繼承來使用即可。多重繼承可能會引入乙個 菱形繼承的問題 這個問題其實並不算問題,因為它合情合理,即多個基類 擁有乙個共同的基類,那麼在構造的時候,由於構造的遞迴特性,就會出現共同基類出現兩份例項的 情況,而且如果針對性修改,那麼如果不在訪問共同基類的時候先指...