C 繼承和派生 多繼承

2021-10-14 16:42:06 字數 2532 閱讀 8126

基類(或父類):被繼承的所有的類(人類)

派生類(或子類):從基類中繼承新增部分特性的類

class 子類:繼承方式 基類1,繼承方式 基類2...

;

繼承目的:實現設計與**的重用,充分利用原有的類

繼承方式:1、公有繼承,2私有繼承,3保護繼承

簡要版public繼承

公有->公有 私有->不可訪問 保護->保護

!基類中的私有成員雖然不能直接在子類中訪問,但是可以通過非私有介面訪問

protected 繼承

公有->保護 私有->不可訪問 保護->保護

private 繼承

公有->私有 私有->不可訪問 保護->私有

詳細版1、公有繼承:public

基類 子類

保護 保護(類外不能引用,類內能訪問)

公有 公有 (類外能引用,類內能訪問)

私有 不可訪問 (類外不能引用,類內也不能訪問)

ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員

2、私有繼承:private

基類 子類

保護 私有(類外不能引用,類內能訪問)

公有 私有 (類外不能引用,類內能訪問)

私有 不可訪問 (類外不能引用,類內也不能訪問)

ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員

3、保護繼承:protected

基類 子類

保護 保護(類外不能引用,類內能訪問)

公有 保護 (類外不能引用,類內能訪問)

私有 不可訪問 (類外不能引用,類內也不能訪問)

ps:基類中的私有雖然不能直接在子類中訪問,但是可以通過基類提供的非私有方法來訪問該基類私有成員

ps:繼承時,不會選擇性地繼承(而是將父類所有資源拷貝一次放置在子類中)

構造器:每個物件都是由構造器來生成物件的

(派生類中:不僅要例項化新增加部分,還例項繼承的部分)

1、子類構造器:不僅要構造自己新增成員,還需要通過初始化列表來呼叫基類構造器來構造繼承的基類成員(若子類的構造器不去呼叫基類的構造器,預設呼叫基類的無參構造器)

初始化列表:

student(…):people(…)

ps:子類的構造器只能例項新的成員,繼承過來的成員只能由該基類的構造器來例項化

ps:先呼叫基類構造器,再呼叫子類構造器

2、析構器:當物件被釋放時,會向物件傳送析構訊息,來通知物件作善後處理。

ps:當子類物件被釋放時,先呼叫子類的析構器,再呼叫基類的析構器

ps:子類中只需要對新增的部作善後處理,基類的善後交給基類的析構器。

當父類方法不滿足子類時,子類可以重寫定義該方法。(子類中基類的方法不會被替換,只是子類的作用域優先呼叫)

class parent

people

(const

char

* n,

char ***,

short age)

:name

(n),

***(***)

,age

(age)

~people()

void

show()

protected

: string name;

//類物件作成員,由people類來呼叫構造器

char ***;

short age;};

class

student

:public people

student

(const

char

* n,

char ***,

short age,

float c)

:people

(n,***,age),c

(c)~

student()

void

display()

protected

:float c;

//分數};

intmain()

同多個基類中派生出子類(子類擁有多個基類)

語法:

class 子類:繼承方式 基類1,繼承方式 基類2...

;

1、構造器:不僅要構造子類新增加部分,還需要通過初始化列表呼叫基類構造器來構造基類部分。

子類構造器(…):基類構造器(…),基類構造器2(…),…

構造順序:1、先構造基類(基類順序繼承列表順序決定),再構造子類

2、析構器的理論知識點與單繼承一樣。

析構順序與構造順序相反

菱形多繼承:擁有公共基類的多繼承,公共繼承出現浪費空間

用虛基類解決,詳見文章

c 繼承和派生

通常子類不加修飾的延續父類的特徵,我們把它叫做繼承 而子類在延續父類特徵的基礎上又新增自己的新特徵,叫做派生。擁有乙個基類的繼承是單一繼承,擁有多個基類的繼承是多重繼承。class 派生類名 派生型別 基類名 注 括號內是派生類自己的成員和成員函式。乙個類的私有成員只能被它的成員函式和友員訪問,不能...

C 繼承和派生

在c 語言中,乙個 派生類可以從乙個 基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承 從多個基類派生的繼承稱為 多繼承。派生類的定義格式 單繼承的定義格式如下 1 2 3 4 class 派生類名 繼承方式 基類名 public 表示公有繼承 private 表示私有繼承 prote...

C 繼承和派生

1 繼承概念 1 繼承是類之間定義的一種重要關係 2 基本語法 class child public parent1,public parent2 3 parent稱基類 父類 child稱派生類 子類 4 繼承方式 public,private,protected.5 重要說明 a 子類擁有父類的...