class子類:繼承方式 父類1,繼承方式 父類2
當兩個或多個父類中,有同名的成員 被子類繼承後,呼叫時候需要加作用域進行
#include
using
namespace std;
class
base1
int m_a;};
class
base2
int m_a;
int m_b;};
class
son:
public base1,
public base2
;void
test01()
intmain()
兩個派生類繼承同乙個基類又有某個類同時繼承兩個派生類,這種繼承被稱為菱形繼承或者鑽石型繼承訪問父類中的資料,需要加作用域區分具體資料由於菱形繼承 導致繼承的資料有乙份是浪費的
虛繼承解決菱形繼承帶來的問題 // virtual
在sheep和tuo類中繼承的內容為vbptr
v — virtaul
b — base
ptr — pointer
vbptr指向虛基類表 vbtable
;//virtual加上後 繼承方式 資料虛繼承
//animal類變為虛基類
class
sheep
:virtual
public animal
;class
tuo:
virtual
public animal
;class
sheeptuo
:public sheep,
public tuo
;void
test01()
// 虛繼承解決菱形繼承帶來的問題
// virtual
intmain()
c 學習(二)繼承
當建立乙個類時,不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為基類,新建的類稱為派生類。其中,整合通過 來進行繼承,繼承包括protect,public,provite三種繼承,其中三種區別如下 訪問public protected privat...
C 學習筆記二 繼承
繼續c 學習 繼承繼承型別 實現繼承和介面繼承 實現繼承 表示乙個型別派生與乙個基型別,擁有該基型別的所有成員欄位和函式。介面繼承 表示乙個型別只繼承函式的簽名,沒有繼承任何實現 結構和類 結構不支援實現繼承,但支援介面繼承。結構總是派生與system.valuetype,他們還可以派生與任何多個介...
C 學習記錄 二 實現繼承
物件導向程式設計基於四個重要方面 封裝 抽象 繼承和多型。繼承是一種強大的屬性重用方式,是通向多型的跳板。這章中將學習 程式設計意義上的繼承 c 繼承語法 公有繼承 私有繼承和保護繼承 多繼承 隱藏基類方法和切除 slicing 導致的問題。在程式設計領域,經常會遇到具有類似屬性,但細節或行為存在細...