編譯器對每個包含虛函數的類創建一個表(稱爲V TA B L E)。在V TA B L E中,編譯器放置特定類的虛函數地址。在每個帶有虛函數 的類中,編譯器祕密地置一指針,稱爲v p o i n t e r(縮寫爲V P T R),指向這個對象的V TA B L E。通過基類指針做虛函 數調用時(也就是做多態調用時),編譯器靜態地插入取得這個V P T R,並在V TA B L E表中查找函數地址的代碼,這樣就能調用正確的函數使 晚捆綁發生。爲每個類設置V TA B L E、初始化V P T R、爲虛函數調用插入代碼,所有這些都是自動發生的,所以我們不必擔心這些。利用虛函 數,這個對象的合適的函數就能被調用,哪怕在編譯器還不知道這個對象的特定類型的情況下。(《C++編程思想》)
C++中虛函數 綁定的編譯器實現(baidu 面試)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
【求職】有關面試和簡歷相關的總結與心得
Chavin-Chen
2020-06-01 12:03:07
【VCS】Git之無盡探索
Chavin-Chen
2020-06-01 12:02:57
【CVS】Git之無盡探索
Chavin-Chen
2019-03-15 19:39:38
【面試】有關面試的總結與心得
Chavin-Chen
2019-02-21 18:58:36
落幕--找工作尾聲--等待
forrest2009
2018-09-03 00:17:11
MS電面一
forrest2009
2018-09-03 00:17:11
WebEX面試4面
forrest2009
2018-09-03 00:17:11
百度暑期實習生筆試
forrest2009
2018-09-03 00:17:11
webEX面試
forrest2009
2018-09-03 00:17:11
linux 下 進程和線程的區別(baidu 面試)
forrest2009
2018-09-03 00:16:59
qq暑期實習筆試2011
forrest2009
2018-09-03 00:16:59
2016打算做運維的人員必知必曉的知識 【轉】
doIt999
2018-09-01 22:00:56