C C 學院 (9)繼承 多型 專題講座

2021-09-23 21:15:01 字數 1730 閱讀 6724

物件導向中的繼承指類之間的父子關係  

1、子類擁有父類的所有成員變數和成員函式

2、子類就是一種特殊的父類

3、子類物件可以當作父類物件使用(賦值相容性原則)

4、子類可以擁有父類沒有的方法和屬性

繼承中的構造和析構

//類的繼承方式對子類對外訪問屬性影響

//1 看呼叫語句,這句話是寫在子類的內部、外部

//2 看子類如何從父類繼承 (

public

、protected

、private

) //3 看父類中的訪問級別(

public

、protected

、private)

c++中子類對外訪問屬性表

總結:不同的繼承方式可能改變繼承成員的訪問屬性

練習:public

繼承不會改變父類對外訪問屬性;

private

繼承會改變父類對外訪問屬性為

private

;protected

繼承會部分改變父類對外訪問屬性。

繼承模型

在子類物件構造的時,需要呼叫父類建構函式對其繼承得來的成員進行初始化

在子類物件析構的時,需要呼叫父類析構函式對其繼承得來的成員進行清理

繼承與組合混搭情況下,構造和析構呼叫原則 

原則: 先構造父類,再構造成員變數、最後構造自己

先析構自己,在析構成員變數、最後析構父類

//子類物件如何初始化父類成員

//繼承中的構造和析構

//繼承和組合混搭情況下,建構函式、析構函式呼叫順序研究

#include using namespace std;

class object

};class enemy

};class herosuper : public hero

};//-個物件pk的場景

void objpk(hero *h, enemy *e)

else

}void main()

物件導向的三大概念:

封裝: 突破了c函式的概念

繼承: 可以使用原來的**, **復用

多型: 比**復用更高了乙個層次, 可以呼叫未來的**。

多型成立的三個條件:

1.要有繼承

2.有有函式重寫(虛) 

virtual關鍵字、

3.要有父類指標(父類引用)或者是指向子類物件。

#include using namespace std;

class hero

};class enemy

};class herosuper : public hero

};//若干年後,重新定義了乙個英雄

class heroafter : public hero

};//-個物件pk的場景

void objpk(hero *h, enemy *e)

else }

//物件導向的三大概念:

//封裝: 突破了c函式的概念

//繼承: 可以使用原來的**, **復用

//多型: 比**復用更高了乙個層次, 可以呼叫未來的**。

void main()

9 繼承和多型

class childclass parentclass python 的所有類都派生自object類。如果定義乙個類的時候沒有指定它的父類,那麼它的父類預設就是object類。熟悉object類的方法是十分重要的,主要看以下四個方法 loan loan 1,1,1,smith print loan...

C C 繼承 多型和虛函式整理

關於c 中虛函式 1.怎麼初始化基類的建構函式 在派生類中,通過引數初始化表可以對基類的建構函式傳遞引數,進行初始化 2.多重繼承的二意性問題 可以將第二層派生類宣告為虛基類 盡量不要使用多重繼承 class b virtual public a class c virtual public a c...

C C 學院 (7)C 物件導向模型初探專題

c 中的class 從物件導向理論出發,將變數 屬性 和函式 方法 集中定義在一起,用於描述現實世界中的類。從計算機的角度,程式依然由資料段和 段構成。成員變數 普通成員變數 儲存於物件中,與struct 變數有相同的記憶體布局和位元組對齊方式 靜態成員變數 儲存於全域性資料區中 成員函式 儲存於 ...