繼承與派生的區別和聯絡

2021-08-31 23:53:31 字數 1154 閱讀 2310

繼承與派生其實是同一過程從不同的角度看,我們將保持已有類的特性而構造新類的過程稱為繼承,說白了繼承的目的就是實現原來設計與**的重用,希望盡量利用原有的類。然而當新的問題出現,原有程式無法解決或不能完全解決時,需要對原有程式進行改造,在已有類的基礎上新增自己的特性而產生新類的過程稱為派生。相關重要概念整理如下:
基類(或父類):被繼承的原有類

直接基類:直接參與派生出某類的基類

間接基類: 基類的基類甚至更高層的基類

派生類(或子類): 派生出的新類 包括三部分

1)吸收基類的成員:預設情況下派生類包含了基類除了建構函式和析構函式之外的所有成員,但是c++11規定可以用using關鍵字將建構函式也繼承過來。

2)改造基類的成員:如果派生類宣告了乙個和基類成員同名的新成員,這樣基類同名的成員就被覆蓋了。

3)新增新的成員:派生類在功能上有所發展。

單繼承(派生類只從乙個直接基類繼承)時派生類的定義:

class 派生類名:繼承方式 基類名

多繼承時派生類的定義:

class 派生類名:繼承方式1 基類名1,繼承方式2 基類名2,…

注意:每乙個「繼承方式」,只用於限制對緊隨其後之基類的繼承。

三種繼承方式:公有繼承,私有繼承和保護繼承

公有繼承(public)

1)繼承的訪問控制

基類的public和protected成員:訪問屬性在派生類中保持不變;

基類的private成員:不可直接訪問。

2)訪問許可權

派生類中的成員函式:可以直接訪問基類中的public和protected成員,但不能直接訪問基類的private成員;

通過派生類的物件:只能訪問public成員。

3)公有派生類物件可以被當作基類的物件使用,反之則不可。

派生類的物件可以隱含轉換為基類物件;

派生類的物件可以初始化基類的引用;

派生類的指標可以隱含轉換為基類的指標。

通過基類物件名、指標只能使用從基類繼承的成員,派生類新增的成員就不能使用了。

派生與繼承 多重派生

1 理解下面的程式,並在 vc 6.0 下執行檢視結果,回答程式後面的問題。class cbase1 cbase1 void print protected int a class cbase2 cbase2 void print protected int b class cderive publ...

繼承與派生

實驗內容 建立乙個基類,兩個派生類,讓每乙個派生類都包含乙個函式area 分別用來返回矩形和三角形的面積。用建構函式對height和width進行初始化。要求通過基類指標訪問虛函式的方法。純虛函式 virtual double area 0 純虛函式的作用是在基類中為派生類保留乙個函式的名字,以便派...

繼承與派生

在c 中,所謂 繼承 就是在乙個已存在的類的基礎上建立乙個新的類。已存在的類成為 基類 新建立的類成為 派生類 乙個新類從已有的類那裡獲得其已有特性,這種現象成為累的繼承。從另一角度說,從已有的類產生乙個新的子類,稱謂累的派生。派生類的宣告方式 class 派生類名 繼承方式 基類名 派生類新增加的...