物件導向中的繼承指類之間的父子關係
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 變數有相同的記憶體布局和位元組對齊方式 靜態成員變數 儲存於全域性資料區中 成員函式 儲存於 ...