繼承與派生

2021-07-24 22:33:02 字數 1557 閱讀 3160

(一)

基本概念

繼承與派生的目的

基本語法

//單繼承

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

//多繼承

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

(二)

三種繼承方式

訪問許可權:

1)公有繼承(public)

繼承的訪問控制:

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

訪問許可權:

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

2)私有繼承(private)

繼承的訪問控制:

基類的public和protected成員:都以private身份出現在派生類中;

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

訪問許可權:

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

通過派生類的物件:不能直接訪問從基類繼承的任何成員。

3)保護繼承(protected)

繼承的訪問控制:

基類的public和protected成員:都以protected身份出現在派生類中; 基類的private成員:不可直接訪問。

訪問許可權:

派生類中的成員函式:可以直接訪問基類中的public和protected成員,但不能直接訪問基類的private成員; 通過派生類的物件:不能直接訪問從基類繼承的任何成員。

protected 成員的特點與作用

對建立其所在類物件的模組來說,它與 private 成員的性質相同。

對於其派生類來說,它與 public 成員的性質相同。

既實現了資料隱藏,又方便繼承,實現**重用。

如果派生類有多個基類,也就是多繼承時,可以用不同的方式繼承每個基類。

補充內容

c++11中可用using語句繼承基類建構函式。但是只能初始化從基類繼承的成員。

派生類新增成員可以通過類內初始值進行初始化

class base;

};class de:public base;

派生與繼承 多重派生

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 派生類名 繼承方式 基類名 派生類新增加的...