菱形繼承筆記

2021-10-11 13:41:25 字數 608 閱讀 1291

菱形繼承概念:

兩個派生繼承同乙個基類

又有某個類同時繼承者兩個派生類

這種繼承被稱為菱形繼承,或者磚石繼承

菱形繼承問題:

#include

using

namespace std;

//動物類

class

animal

;//利用虛繼承可以解決菱形繼承的問題

//繼承之前 加上關鍵字virtual 變為虛繼承

//animal類稱為虛基類

//羊類

class

sheep

:virtual

public animal

;//駝類

class

tuo:

virtual

public animal

;//羊駝類

class

sheeptuo

:public sheep,

public tuo

;void

test01()

intmain()

原理:虛繼承實際是繼承指標,指標通過偏移量找到唯一的資料

菱形繼承 菱形虛擬繼承

菱形繼承 鑽石繼承 模型 拿如下 舉例 class person class student public person class teacher public person class graduate public student,public teacher void test 當派生類gr...

菱形繼承和菱形虛繼承

繼承是c 的一大特點,我們通過菱形繼承和菱形虛繼承對繼承進行進一步的分析。菱形繼承 建立乙個基類a讓b1和b2公有繼承於它,讓c公有繼承b1和b2。class a a int a class b1 public a b1 int b1 class b2 public a b2 int b2 clas...

多重繼承(菱形繼承)

多重繼承 經典的是菱形繼承,如圖。菱形繼承將會產生的問題 把基類a中的成員變數通過b和c兩次繼承至d。d的繼承結構 可以看到,ma被繼承兩次至d 那麼將如何解決這個問題呢?採用虛繼承的方法,將基類a中的ma直接繼承至d。如下 class a int ma class b virtual public...