C++多態如何理解?實現多態性呢?多態性的作用呢?

C++多態性:
簡單理解“一個接口,多種方法”。“允許將派生類類型的指針賦值給基類類型的指針”
將基類指針指向派生類對象,通過基類指針調用派生類的成員函數來執行不同的操作。

C++多態性的實現方法:
C++多態性是通過虛函數實現的。虛函數允許子類重新定義基類的成員函數。
實現方法有兩種:重載和重寫(也稱覆蓋)

如果你想學習C/C++可以來這個羣,首先是三三零,中間是八五九,最後是七六六,裏面有大量的學習資料可以下載。

重載:簡單理解就是在C++類中允許存在多個同名同返回值類型的函數,這些函數的參數列表不同、參數類型不同或者兩者都不同。
重載不是多態。(在編譯期間,編譯器會根據函數不同的參數列表、參數類型,對同名函數生產一系列不同名稱的預處理函數,來實現同名函數調用時的重載問題。也就是說它們的地址在編譯期間就已經綁定了(早綁定),是靜態的。)
重寫(覆蓋):虛函數實現的,在派生類中重新定義基類的做法。派生類中重新定義基類的虛函數後,基類指針根據賦值給它的不同子類派生類指針,動態的調用相應派生類的成員函數。它們的地址在編譯期間不能被確定(編譯期間派生類的虛函數地址無法確定),所以它們的地址是程序運行期間綁定的(晚綁定)。所以說重寫纔是真正意義上的多態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章