編譯器的做法不是我們期望的
根據實際的物件型別來判斷重寫函式的呼叫
如果父類指標指向的是父類物件則呼叫父類中定義的函式
如果父類指標指向的是子類物件則呼叫子類中定義的重寫函式
這個新的需求就是多型
#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 第...