C 中的虛基類

2021-07-05 02:29:16 字數 611 閱讀 9575

我們知道類具有三大特性:封裝、繼承和多型。繼承,可以在現有類的功能上進一步擴充套件,而無需在構建新的類。但有時多重繼承會使結構變得複雜,不注意的話還會引起二義性。其中比較典型的乙個案例:

class a

;class b: public a

{};class c: public a

{};class d: public b, public c

{};

那麼此時如果我們宣告乙個d類的物件:

int main()

因此,很容易出現混淆和錯誤。然而如果我們設定類a為虛基類,則就不用再去區分是從哪條路徑繼承來的a值了。即:

class a

;class b: virtual public a // a是b的虛基類

{};class c: virtual public a // a是c的虛基類

{};class d: public b, public c

{};

此時就可以直接呼叫 d.a= 0;了。

c++提供虛基類的方法,使得在繼承間接共同基類是只保留乙份成員。(c++程式設計)

C 中虛基類的作用

父類 class cparent 繼承類的宣告比較特別 中virtual的作用是 說明這個cparent是cchild 的虛基類 class cchild virtual public cparent 虛基類是指 class subclass virtual public baseclass 中以v...

C 的虛基類

虛基類 當在多條繼承路徑上有乙個公共的基類,在這些路徑中的某幾條匯合處,這個公共的基類就會產生多個例項 或多個副本 若只想儲存這個基類的乙個例項,可以將這個公共基類說明為 虛基類 虛基類.在繼承中產生歧義的原因有可能基類是繼承類繼承了基類多次,從而產生了多個拷貝,即不止一次的通過多個路徑繼承類在記憶...

c 的類 虛基類 六

什麼是虛基類 就是他的派生類有兩個或者以上的派生類 通過虛繼承,這樣就可以避免派生類有多個基類的副本 從而減少記憶體消耗 關於繼承可以看我的這一篇新增鏈結描述 include include using namespace std class person class partymember vir...