型別相容規則與同名隱藏規則

2021-08-20 21:53:14 字數 864 閱讀 7277

型別相容規則

通過公有繼承,派生類得到了基類中除建構函式、析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。

乙個公有派生類的物件在使用上可以被當作基類的物件

通過基類物件名、指標只能使用從基類繼承的成員

#include using namespace std;

class base1

};class base2 : public base1

};class derived : public base2

};void fun(base1 *ptr)

int main()

執行結果:
base1::display()

base1::display()

base1::display()

同名隱藏規則

當派生類與基類中有相同成員時:

#include using namespace std;

class base1

};class base2

};class derived : public base1, public base2 //同名函式成員

};int main()

執行結果

member of derived

member of base1

member of base2

同名隱藏與賦值相容規則

在繼承體系中我們的編寫派生類一般可分四個步驟 1 吸收基類成員 除建構函式和析構函式外全部接收 2 改造基類成員 宣告乙個和某基類成員的新成員,派生類中的新成員就遮蔽了基類同名成員稱為同名隱藏 3 發展新成員 派生類新成員必須與基類成員不同名,它的加入保證派生類在功能上有所發展 4 重寫建構函式和析...

四 同名隱藏,繼承的特性 賦值相容規則

目錄 一.子類中的函式同名隱藏 二.繼承的特性 賦值相容規則 1.同名隱藏的概念 設在某一繼承關係中,子類中有乙個和父類中同名的函式 show 那麼子類在呼叫show 方法時,系統將呼叫子類的show 方法,而不會去呼叫父類的show 方法,這種現象叫做同名隱藏。切記 這裡的show 方法不是我後面...

c 多型之型別相容規則

在替代之後,派生類物件就可以作為基類的物件使用,但是只能使用從基類繼承的成員 通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員 示例三種替代情況 classa classb public a a a,aa b b 1 派生類的物件可以賦值給基類物件 a b 2 派生類的物件可以初始...