C 學習(十四) 繼承(二)

2021-10-03 15:30:19 字數 1244 閱讀 4008

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 導致的問題。在程式設計領域,經常會遇到具有類似屬性,但細節或行為存在細...