C 繼承派生和多型的知識整理

2021-10-17 10:59:26 字數 1361 閱讀 5544

1.繼承和派生

2.虛函式和多型

3.運算子過載的理解

4.類和物件提高

一.繼承與派生

1.基本定義

繼承與派生是同乙個過程從不同的角度看:

保持已有類的特性而構成新類的過程稱為繼承

在已有類的基礎上新增自己的特性而產生新類的過程稱為派生

被繼承的已有類成為基類(父類)base class

派生出的新類稱為派生類(子類)derived class

2.派生儲存

派生類的儲存結構如下

3.派生函式的構造

由上述儲存結構也可大致推斷出,函式先構造基類成員,再構造派生類的成員。在建立派生類物件,需要先呼叫派生類物件中基類的構造物件,不然編譯器無法進一步向下進行

4.public繼承的賦值相容規則

//看著像多型.cpp

#include

using

namespace std;

class

bvoid

fun()b

(int n)};

classd:

public b

//派生類的建構函式 初始化列表(基類實參)

void

fun(

)void

print()

};intmain()

};classb:

public a};

intmain()

//結果

//b::func

//a::func

此處將指標指向的內容用了longlong(即為物件的虛函式表),因此改變了b物件開頭的虛函式表指標,換成了a,從而實現了「移花接木」的效果,將a的虛函式用到了b的虛函式裡(然而事實上一般沒人這麼做,本題郭瑋老師這麼做只是為了展現虛函式表的特性)

2.多型的表現形式

派生類的指標可以賦給基類指標

派生類的物件可以賦給基類引用(這些恰恰彌補了繼承和派生中的所提及的缺陷)

此時則指向的物件就是呼叫虛函式的物件了

class

cbase;}

;class

cderived

:public cbase;}

;int

main()

學習心得,持續更新。敬請期待。

C 繼承派生多型

物件導向程式設計有4個主要特點 抽象,封裝,繼承,多型。如果沒有掌握這些主要特點,就是沒有掌握物件導向程式設計的真諦。下面歸納一下在物件導向程式設計中一些基本的要點和注意事項。1.當基類派生出乙個子類的時候,子類會繼承基類的所有成員 包括私有成員 但是私有成員在子類中是不可訪問的,而且基類中的巨集定...

C 繼承 派生 多型

繼承就是在乙個已存在的類的基礎上建立乙個新的類。已存在的類稱為基類,又稱父類 新建立類稱為派生類,又稱為子類。繼承允許我們依據另乙個類來定義乙個類,不需要重新編寫一部分的資料成員和成員函式,達到了重用 功能和提高執行效率的效果。乙個類可以派生自多個類,從多個基類繼承資料和函式。我們使用乙個類派生列表...

c 繼承和派生

通常子類不加修飾的延續父類的特徵,我們把它叫做繼承 而子類在延續父類特徵的基礎上又新增自己的新特徵,叫做派生。擁有乙個基類的繼承是單一繼承,擁有多個基類的繼承是多重繼承。class 派生類名 派生型別 基類名 注 括號內是派生類自己的成員和成員函式。乙個類的私有成員只能被它的成員函式和友員訪問,不能...