c++的多態使用虛函數實現,通過“晚綁定”,使程序在運行的時候,根據對象的類型去執行對應的虛函數。
C++ 之虛函數的實現原理
帶有虛函數的類,編譯器會為其額外分配一個虛函數表,里面記錄的使虛函數的地址,當此類被繼承時,子類如果也寫了虛函數就在子類的虛函數表中將父類的函數地址覆蓋,否則繼承父類的虛函數地址。
實例化之后,對象有一個虛函數指針,虛函數指針指向虛函數表,這樣程序運行的時候,通過虛函數指針找到的虛函數表就是根據對象的類型來指向的了。
c++的多態使用虛函數實現,通過“晚綁定”,使程序在運行的時候,根據對象的類型去執行對應的虛函數。
C++ 之虛函數的實現原理
帶有虛函數的類,編譯器會為其額外分配一個虛函數表,里面記錄的使虛函數的地址,當此類被繼承時,子類如果也寫了虛函數就在子類的虛函數表中將父類的函數地址覆蓋,否則繼承父類的虛函數地址。
實例化之后,對象有一個虛函數指針,虛函數指針指向虛函數表,這樣程序運行的時候,通過虛函數指針找到的虛函數表就是根據對象的類型來指向的了。
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。