虛函數表指針與虛函數表分別位於進程內存的哪一個段?

Linux虛函數表指針與虛函數表分別位於進程內存的哪一個段

虛函數表指針

虛函數表指針是虛函數表所在位置的地址。虛函數表指針屬於對象實例。因而通過new 出來的對象的虛函數表指針位於堆,聲名對象的虛函數表指針位於棧

虛函數表

虛函數表位於只讀數據段,虛函數內保存的是函數的入口地址。

總結

虛函數表指針屬於對象實例,每個對象實例都會有虛函數指針
虛函數表是一個類的所有對象實例共用。
因此沒有必要每個對象實例都有一個虛函數表,每個對象實例只需要保存虛函數表的地址即可。
函數實體則位於代碼段。
概念需要分清

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