C 繼承總結

2021-08-21 05:42:39 字數 2070 閱讀 2612

繼承概念

在原有的類不變的基礎之上,新增一些函式,對功能進行拓展

繼承特點

是物件導向程式設計的的層次結構

是實現由簡單到複雜的認知過程

基類:被繼承的類

派生類:在繼承之後產生的新類

例子

手機系統會不斷更新,然而,我們的手機更新之後的功能只是對原來的功能進行優化和新增

繼承格式

派生類名 :繼承許可權 基類名

繼承許可權

注: 1、public 表示派生類中為 公有成員

2、protect 表示派生類中為 受保護成員(派生類中可以訪問,但是類外無法訪問,該訪問限定符因繼承而出現

3、private 表示派生類中為 私有成員

4、不可見 表示 派生類中無法訪直接問該成員

繼承許可權總結

public繼承是介面繼承,保持is-a原則,即每乙個子類的是父類的物件

protect/private繼承 是乙個實現繼承,基類的部分成員並不是完全成為子類介面的一部分,保持has-a原則(聚合原則)

class關鍵字預設的繼承方式是private, struct關鍵字預設的繼承方式是public

派生類預設成員函式(c98)

建構函式

1、 構造基類成員和派生類成員的呼叫次序:先呼叫派生類的建構函式(初始化列表中先構造基類成員再構造派生類成員),再呼叫基類建構函式構造基類成員之後,返回派生類建構函式繼續構造派生類成員。

拷貝建構函式

析構函式

1、先呼叫派生類析構之後,呼叫基類析構(原因是:先建立的後銷毀)

賦值操作符過載

取位址操作符過載

const修飾的取位址操作符過載

(c++ 11中新增兩個成員函式)

移動構造

移動賦值

繼承體系中的作用域

1、基類和派生類不是同一塊作用域

2、同名隱藏問題:因為派生類中有與基類同名的成員,派生類中將隱藏基類的同名成員,不能直接訪問,可以通過 (基類名::基類成員)的方式訪問

賦值相容規則

1、前提:在public繼承許可權下

2、原因:每乙個子類都可以是父類的物件

3、結果:

(1)子類物件可以賦值給父類物件,反之不行(會越界)。

(2)父類物件的指標或引用可以指向子類的物件,反之不然(需要強轉完成)(會越界)

繼承體系下派生類的物件模型

1、單繼承

2、多繼承

3、菱形繼承

4、虛擬繼承

5、菱形虛擬繼承

謝謝關注!!

C 繼承總結

繼承是物件導向程式設計中軟體重用的關鍵技術。繼承機制使用已定義的類作為基礎建立新的類定義,新的類是原有類的資料及操作與新類所增加的資料及操作的組合。新的類把原有的類作為基類引用,而不需要修改原有類的定義。新的類作為派生類引用。這種可擴充 可重用技術大大降低了大型軟體的開發難度。c 中描述類繼承關係的...

C 繼承總結

一 基類和派生類 類繼承關係的語法形式 class 派生類名 基類名錶 資料成員和成員函式說明 其中,基類名錶 的語句格式如下 訪問控制 基類名1,訪問控制 基類名2,訪問控制 是表示繼承許可權的關鍵字,稱為訪問描述符。可以是 如果省略訪問描述符,則c 認為是私有繼承。如果用關鍵字struct 而不...

C 繼承總結

繼承 1 三種類成員訪問限定符繼承 2 公有繼承 保護繼承 私有繼承 基類的私有成員在派生類是無法被訪問的,如果乙個基類不想讓基類物件之間訪問自己的成員,但是需要在派生類中訪問,那麼可以將該成員設定為 protected 保護類 公有繼承是乙個介面繼承,所有基類可用的成員對子類也可用,每乙個派生類都...