C 如何實現多重繼承

2021-08-20 09:46:56 字數 473 閱讀 7835

多重繼承:乙個類從兩個或多個基類派生。多繼承的好處:減少程式複雜性,減少出錯的可能性,執行效率更高。

舉例:senddtata類的作用是傳送資料,receivedata類的作用是接收資料,現在要建立socketdata類,作用是傳送和接受資料,此時,你希望socketdata從senddtata和receivedata這兩個類繼承,但clr不支援多繼承,也就意味著c#不支援多繼承,但是,clr允許通過介面inte***ce實現「縮水版」的多繼承。

大家都知道inte***ce實際上就是乙個虛函式列表指標,內部封裝的只有函式和屬性,而且inte***ce不能例項化只能通過派生(因為沒有建構函式)才可以使用。這一點和抽象類很類似,可是抽象類是個類,他有方法的實現,它所描述的物件是乙個無法在現實中具現的物件,但它本身是個型別物件。而介面實際上是一種標準。

但多繼承也有不合理的情況,例如: 男人 、女人是兩個基類。如果乙個類同時繼承這兩個類是什麼樣的人呢?所以,要合理正確地使用多繼承。

多重繼承 C 中的多重繼承

多重繼承是c 的一項功能,其中乙個類可以從多個類繼承。繼承類的建構函式以它們繼承的相同順序被呼叫。例如,在以下程式中,在a的建構函式之前呼叫b的建構函式。include using namespace std class a class b class c public b,public a not...

c 多重繼承

其實想寫這篇文章,是因為突然在整理論壇上的帖子的時候,突然發現乙個人問我如何才能在c 中實現多重繼承,當時我答的很隱晦,因此這裡我想補充說明一下.首先,我要說明一下,c 中是沒有類的多重繼承這個概念.要使用多重繼承必須要通過介面inte ce來完成.可是大家都知道inte ce實際上就是乙個虛函式列...

C 多重繼承

c 中的多繼承可看做是單繼承的擴充套件,就是乙個派生類對應多個基類。以下是一段多重繼承的 class a class b class c public a,public b 以上的程式中,派生類c繼承了基類a b。派生類c中,公有繼承了a,所以c的共有成員中有a中的兩個共有成員函式,而私有繼承的b基...