C++虛函數的工作原理

通常,編譯器處理虛函數的方法是:給每一個對象添加一個隱藏成員,這個隱藏成員中保存了指向函數地址數組的指針。這種數組叫做虛函數表,虛函數表中存儲了爲類對象進行聲明的虛函數的地址。 以上面兩個類爲例子,B繼承自A 基類對象包含一個指針,指向基類中所有虛函數的地址表。 派生類對象將包含一個指向獨立地址表的指針,如果派生類提供了虛函數的新定義,該虛函數表將保存新函數的地址.反之,則保存該函數原始版本的地址
相關文章
相關標籤/搜索