C 繼承和派生類

2021-07-25 07:16:21 字數 3067 閱讀 4324

繼承和派生類

繼承性是物件導向程式設計中最重要的機制。這種機制提供了無限重複利用程式資源的一種途徑。通過c++語言中的繼承機制,可以擴充和完善舊的程式設計以適應新的需求。這樣不僅可以節省程式開發的時間和資源,並且為未來程式增添了新的資源。

class student

;

class studend1

;

利用原來定義的類student作為基礎,再加上新的內容即可,以減少重複的工作量。 c++提供的繼承機制就是為了解決這個問題。

在c++中所謂「繼承」就是在乙個已存在的類的基礎上建立乙個新的類。已存在的類稱為「基類(base class)」或「父類(father class)」。新建立的類稱為「派生類(derived class)」或「子類(son

class)」。

class student1: public student//宣告基類是student

};

類a派生類b:類a為基類,類b為派生類。

在c++語言中,乙個派生類可以從乙個基類派生,也可以從多個基類派生。從乙個基類派生的繼承稱為單繼承;從多個基類派生的繼承稱為多繼承。

通過繼承機制,可以利用已有的資料型別來定義新的資料型別。所定義的新的資料型別不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類為基類,又稱為父類。由已存在的類派生出的新類稱為派生類,又稱為子類。

在建立派生類的過程中,基類不會做任何改變,派生類則除了繼承基類的所有可引用的成員變數和成員函式外,還可另外定義本身的成員變數和處理這些變數的函式,由於派生類可繼承基類的成員變數和成員函式,因此在基類中定義好的資料和函式等的程式**可重複使用,這樣可以提高程式的可靠性。

當從已有的類中派生出新的類時,可以對派生類做以下幾種變化:

1、 可以繼承基類的成員資料或成員函式。

2、可以增加新的成員變數。

3、可以增加新的成員函式。

4、可以重新定義已有的成員函式。

5、可以改變現有的成員屬性。

在c++中有二種繼承:單一繼承和多重繼承。當乙個派生類僅由乙個基類派生時,稱為單一繼承;而當乙個派生類由二個或更多個基類所派生時,稱為多重繼承。

類a派生類b:類a為基類,類b為派生類。

但派生並不是簡單的擴充,有可能改變基類的性質。

有三種派生方式:公有派生、保護派生、私有派生。

預設的是私有派生。

從乙個基類派生乙個類的一般格式為:

class  classname:baseclassname

;

class  d: public  a, protected b, private c

;

初始化基類成員

建構函式不能被繼承,派生類的建構函式必須呼叫基類的建構函式來初始化基類成員基類子物件。

派生類建構函式的呼叫順序如下:

基類的建構函式

子物件類的建構函式

派生類的建構函式

class b:public a

.......

};

當撤銷派生類物件時,析構函式的呼叫正好相反。

基類與物件成員

任一基類在派生類中只能繼承一次,否則,會造成成員名的衝突

若在派生類中,確實要有二個以上基類的成員,則可用基類的二個物件作為派生類的成員。

把乙個類作為派生類的基類或把乙個類的物件作為乙個類的成員,在使用上是有區別的:在派生類中可直接使用基類的成員(訪問許可權允許的話),但要使用物件成員的成員時,必須在物件名後加上成員運算子「.」和成員名。

在平面上作兩個點,連一直線,求直線的長度和直線中點的座標。

基類為dot,有兩個公有資料成員,即平面上的座標(x,y),同時有建構函式及列印函式。

派生類為line,有兩個基類dot物件,分別存放兩點的座標,同時,從基類繼承了乙個dot資料,存放直線中點的座標。

再次強調,用虛基類進行多重派生時,若虛基類沒有預設的建構函式,則在每乙個派生類的建構函式中都必須有對虛基類建構函式的呼叫 (且首先呼叫)。

繼承和派生類

一 基本概念 繼承是物件導向的程式設計的重要特色之一,它可以有效提高軟體的重用性。若在已有類a的基礎上建立了乙個新類b,則稱類b繼承了類a,類a稱為基類或父類,類b稱為派生類或子類。c 中,繼承又分單一繼承和多重繼承。若派生類只有乙個基類,則稱為單一繼承 若派生類的基類多於乙個,則稱為多重繼承。1 ...

繼承 基類和派生類

說明派生類的生成和使用 include using namespace std class test1 基類 test1 int a x a void disp class test2 public test1 派生類 test2 int a,int b test1 a void disp intm...

多重繼承 派生類

作 者 劉慧豔 完成日期 2014 年6月20日 版 本 號 v1.0 問題描述 分別宣告teacher 教師 類和cadre 幹部 類,採用多重繼承方式 由這兩個類派生出新類teacher cadre 教師兼幹部 類。要求 1 在兩個基類中都包含姓名 年齡 性別 位址 等資料成員。2 在teach...