型別相容原則遇上函式重寫

2021-07-28 03:55:38 字數 429 閱讀 9183

編譯器的做法不是我們期望的

根據實際的物件型別來判斷重寫函式的呼叫

如果父類指標指向的是父類物件則呼叫父類中定義的函式

如果父類指標指向的是子類物件則呼叫子類中定義的重寫函式

這個新的需求就是多型

#includeusing namespace std;

class parent

void howtoprint2(parent &base)

int main()

//函式呼叫

howtoprint(&p1);

howtoprint(&c1);

howtoprint2(p1);

howtoprint2(c1);

system("pause");

return 0;

}

多型中型別相容性原則遇上函式重寫

多型 多型的工程意義 物件導向三大概念,三種境界 封裝,繼承,多型 多型成立條件 總結條件,看 的時候要看出多型。1 問題拋轉,如果父類的函式名和子類的函式名重複了會發生什麼?include using namespace std class parent void howtoprint2 pare...

型別相容原則(C )

型別相容原則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。型別相容原則中所指的替代包含以下情況。1 派生類的物件可以隱含轉換為基...

型別相容性原則

傳智掃地僧課程學習筆記。賦值相容性原則 1 1 基類指標 引用 指向 子類物件 parent p null p c1 p printp 1 2 指標做函式引數 howtoprint p1 howtoprint c1 1 3引用做函式引數 howtoprint2 p1 howtoprint2 c1 第...