理解多型
多種多樣的形態(靜態多型,動態多型)
靜態多型(編譯時期)
1:函式多載
bool comparet(int ,int); bool compare(double,double);
compare(100,100)->compare_int_int();
compare(1.0,2.0)->comapre_double_double();
2:模板
template<typename T>
bool compare(T a,T b){
return a>b;
}
compare<int>(20,10); =>int 實體化compare(int x, int y); 發生在編譯時期
compare<double>(100.0,50.0); 實體化compare(double x,double y);發生在編譯器
動態多型(運行時期)
在繼承結構中,基類指標(參考),指向派生類物件,通過該指標(參考)呼叫同名覆寫方法(虛函式)
基類指標指向哪個派生類物件,就會呼叫哪個派生類物件的同名覆寫方法,稱為多型
pBase->show()多型底層是通過動態系結來實作的 pbase->訪問誰的vfptf->繼續訪問vftable->拿到最終的虛函式地址->完成呼叫
繼承的好處?
1:可以做代碼的復用
2:在基類中提供統一的虛函式介面,讓派生類進行重寫,然后就可以使用多型.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/538602.html
標籤:其他
