1,虛基類,其建構函式總是在最後乙個層次最先並且真正被執行。
例項**:
#include
using namespace std;
class a
virtual ~a() {}
};class b
virtual ~b() {}
};class c
virtual ~c() {}
};class d
virtual ~d() {}
};class e : public a, virtual public b, virtual public c
};class f : virtual public b, virtual public c, public d
};class g : public e, public f
};int main()
輸出:[quote]b from g
c from g
a from e
e from g
d from f
f from g
g from main[/quote]
總結:虛基類建構函式最先被執行,然後按照從左到右,從上到下的順序依次執行每乙個建構函式。
多重繼承 虛繼承與虛基類
一 多重繼承 單重繼承 乙個派生類最多只能有乙個基類 多重繼承 乙個派生類可以有多個基類 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 元件,因此...