/*多型:
多型的工程意義:
物件導向三大概念,三種境界(封裝,繼承,多型)
多型成立條件:
總結條件,看**的時候要看出多型。
1:問題拋轉,如果父類的函式名和子類的函式名重複了會發生什麼? */
#include
using namespace std;
class parent
void howtoprint2(parent &base3)
int main()
//函式呼叫
howtoprint(&p1);
howtoprint(&c1);
howtoprint2(p1);
howtoprint2(c1);
}//用以上無論是呼叫還是指標還是引用都不能呼叫子類的print函式。輸出的都是父類的資料。
/*2:物件導向新需求
編譯器的做法不是我們所希望的。
根據實際的物件型別來判斷重寫函式的呼叫。
如果父類指標指向的是父類物件則呼叫父類中的定義的函式。
如果父類指標指向的是子類物件則呼叫子類中的定義的函式。
我們希望根據實際的物件型別決定函式呼叫語句的具體呼叫目標。
多型:同樣的呼叫語句有多種不同的表現形式 。
3:解決方案
c++中的多型支援
c++中通過virtual關鍵字對多型進行支援。
使用virtual宣告的函式被重寫後即可展開多型性。
在這個例子中只需要在父類中的void print函式前面加上virtual關鍵字即可,子類的可寫可不寫,一般都寫上,比較醒目。
這就是c++給我們提供的多型的乙個功能。*/
型別相容性原則
傳智掃地僧課程學習筆記。賦值相容性原則 1 1 基類指標 引用 指向 子類物件 parent p null p c1 p printp 1 2 指標做函式引數 howtoprint p1 howtoprint c1 1 3引用做函式引數 howtoprint2 p1 howtoprint2 c1 第...
C 型別相容性原則
型別相容規則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能解決的問題,公有派生類都可以解決。型別相容規則所指的替代包括以下情況 1.子類物件可以當作父類物件使用...
c 型別相容性原則
內容源自 傳智播客 型別相容性規則是指在需要基類物件的任何地方,都可以使用公有派生類的物件來替代。通過公有繼承,派生類得到了基類中除建構函式 析構函式之外的所有成員。這樣,公有派生類實際就具備了基類的所有功能,凡是基類能夠解決的問題,公有派生類都可以解決。型別相容性原則包含下面幾種情況 1.子類物件...