我遇到了這個問題,想知道答案是什麼?虛擬功能及其開銷
以下哪個選項描述了具有五個虛擬功能的類 的預期開銷?
A.所述類的每個對象保留保持 的5個虛函數
B.類的每個對象的地址的結構的地址保持的五個虛擬 函數的地址
C.該類的每個對象都保存下一個虛擬函數的地址。
D.該類的每個對象都包含保存虛擬函數地址的鏈接列表對象 的地址。
E.該類的每個對象都將類聲明的地址 保存在內存中,通過該地址解析虛函數調用。
我對虛擬表很熟悉,每個類都有一個虛擬表,表示哪個虛擬功能指向哪個實現。但是我不確定類的實例如何與該虛擬表進行通信。我的猜測是A.請讓我知道,如果我是對/錯,也是對答案的一些解釋。
請參閱http://stackoverflow.com/a/203136/1611055:每個對象(屬於具有至少一個虛函數的類)都有一個指針,稱爲vptr。它指向其實際類的vtbl。答案還表明,這不是標準的一部分,所以不同的編譯器**可能**以不同的方式實現它。然而,答案「A」將是與相關答案相匹配的答案。 – 2014-09-23 07:31:14
謝謝安德烈亞斯,你可以把它解釋爲答案 – Rajeshwar 2014-09-23 07:36:59
你可以消除兩個選項,因爲它們沒有任何意義;和另外兩個(對於任何明智的實現),其對於大量的虛擬功能和/或對象而言嚴重縮放。這留下了一個明智的選擇。 – 2014-09-23 07:37:50