C 中的繼承

2021-10-14 10:15:19 字數 1568 閱讀 5334

在繼承關係中存在兩個類:基類(父類)、派生類(子類)

派生類擁有基類的所有特徵

可以定義新的特徵

對基類的一些特徵進行重定義

繼承分為單繼承和多繼承,單繼承是指乙個類只能有乙個直接基類,多繼承是指乙個類可以有多個直接基類。

class

《派生類名》

:《繼承方式》

《基類名》

;

成員說明表:給出派生類中新定義的成員

繼承方式:public,private, protected ,預設是private。繼承方式決定了:基類成員變成派生類的什麼成員;派生類的物件使用者以及派生類的派生類對該派生類的基類成員的具有何種訪問控制;

示例:

class

bird

;//鳥會飛

void

walk()

//鳥會走};

class

penguin

:public bird

void

walk()

};intmain()

派生類幾點規定:

派生類擁有基類所有成員(基類的建構函式和賦值操作符過載函式除外)外,也可以具有新的成員。

派生類中可以給出新的成員,也可以對基類成員進行重定義。派生類的訪問是對重定義成員的。

派生類成員的作用域巢狀在基類作用域中。基類的乙個成員,在派生類中沒有定義與其同名的成員,則該成員名在派生類的作用域內可見;否則,該成員在派生類的作用域內不可見,如果要使用之,必須用基類名受限;即使派生類中定義了域基類同名但引數不同的成員函式,基類的同名函式在派生類的作用域中也是不可見的。

定義派生類時一定要見到基類的定義。編譯程式無法確定派生類物件需佔多大記憶體空間、派生類對基類成員的訪問是否合法等。

友元關係不能繼承,需要顯式指出。如果在派生類中沒有顯示說明, 基類的友元不是派生類的友元;如果基類是另乙個類的友元, 而該類沒有顯式說明, 則派生類也不是該類的友元。

派生類不能直接訪問基類的私有成員。必須要通過基類的非私有成員函式來訪問基類的私有成員,即public成員(外部也能訪問)以及protected成員(外部不能訪問)。

任何繼承凡是下,除了基類的private成員可以在派生類中分別調整其訪問控制。

調整方式:

[

(public:)

|(protected:)

|(private:)

]《基類名》

::《基類成員名》

需要注意:

對基類中乙個過載成員函式名的訪問控制的調整,將調整基類中所有具有該名的過載函式;

派生類中如果定義了與基類中同名的成員函式,則在派生類中不能再對基類中的同名函式進行訪問控制調整。

繼承方式調整示例:

#include

using

namespace std;

class

bird

;class

penguin

:public bird

;int

main()

C 中的繼承

一 繼承 什麼是繼承 繼承是允許重用現有類去建立新類的過程。分類的原則是乙個類派生出來的子類具有這個類的所有非私有的屬性。1 繼承c 中的類 c 不支援多重繼承,c 類始終繼承自乙個基類 如果未在宣告中指定乙個基類,則繼承自 system.object 派生類繼承基類的語法如下 using syst...

C 中的繼承

繼承,資料抽象和動態繫結是物件導向程式設計的核心思想。使用繼承,可以定義相似的型別並對其相似關係進行建模。通過繼承聯絡在一起的類構成一種層次關係,通常在層次關係的根部有乙個基類,其他類則直接或間接地從基類繼承而來,這些繼承得到的類稱為派生類。下面就讓我們一起來 繼承中的一些常見問題。1.繼承方式cl...

C 中的繼承

繼承是c 中的三大特性之一。繼承機制是物件導向程式設計使 可以復用的最重要的手段,它允許程式設計師在保持原有類特性的基礎上進行擴充套件,增加功能。這樣產生新的類,叫做派生類。繼承定義的格式 class deriveclassname 派生類名 asecc label 繼承型別 baseclassna...