C++ 之虛函數的實現原理

c++的多態使用虛函數實現,經過「晚綁定」,使程序在運行的時候,根據對象的類型去執行對應的虛函數。c++

C++ 之虛函數的實現原理函數

帶有虛函數的類,編譯器會爲其額外分配一個虛函數表,裏面記錄的使虛函數的地址,當此類被繼承時,子類若是也寫了虛函數就在子類的虛函數表中將父類的函數地址覆蓋,不然繼承父類的虛函數地址。指針

實例化以後,對象有一個虛函數指針,虛函數指針指向虛函數表,這樣程序運行的時候,經過虛函數指針找到的虛函數表就是根據對象的類型來指向的了。對象

相關文章
相關標籤/搜索