首頁 > 後端開發 > C++ > 主體

C 編譯器中是否有虛擬函式呼叫的替代實作?

Linda Hamilton
發布: 2024-11-02 05:07:02
原創
830 人瀏覽過

Are There Alternative Implementations for Virtual Function Calls in C   Compilers?

替代的虛擬函數呼叫實作

而虛擬表和虛擬指標機制通常用於在C編譯器中實作虛擬函數的動態調度,有沒有採用替代方法的編譯器?

編譯器實作

絕大多數 C 編譯器,包括​​ G 和 Microsoft Visual Studio,都利用虛擬表和虛擬指標方法進行動態調度。然而,在極少數情況下,編譯器可能會以不同的方式實現它。例如,某些編譯器可能使用類似於物件內指標的東西,其中虛擬函數指標儲存在物件本身內。對於具有大量基數和數組的複雜物件來說,此類實作可能更有效,因為它們只需要映射表中的單一條目來表示數組中的所有物件。

物件大小和虛擬函數

「任何僅具有虛函數的類別的大小將是該編譯器上指標(其中的vptr)的大小」的說法通常是正確的,因為虛擬指標通常會作為物件的一部分儲存。然而,在使用不同虛擬分派方法的替代實作中,情況可能並非總是如此。

總之,雖然虛擬表和虛擬指標機制是 C 編譯器中最受歡迎的動態分派實現,但有些編譯器可以針對某些最佳化場景採用替代方法。使用的具體實作可能會影響儲存要求和查找效率等因素。

以上是C 編譯器中是否有虛擬函式呼叫的替代實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!