2016-04-25 53 views

回答

1

基類沒有關於它們的子類的任何信息。 它的子類有關於基類的信息。

+0

取決於你對信息的意思。通過[CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern),基類可以訪問派生類的所有公共成員。 – NathanOliver

+0

@NathanOliver是的,我的意思是在Regular。對不起,沒有指定。 –

+0

@NathanOliver我不知道CRTP。很有意思! –

0

一般來說它取決於你的名字「信息」 如果你已經聲明瞭一個基類中的虛函數 你可以說編譯基類中生成一個跳轉列表,當您從基類派生,並聲明函數是什麼它具有與虛擬基類函數相同的聲明,編譯器只需將派生類中的函數地址放置到基類中的該跳轉列表中即可。 這當然是由派生類完成的。

如果您有繼承鏈,最後一個實例化的類將放置其函數的地址。而當基類試圖調用函數時,它只是使用跳轉列表跳轉到正確的函數。

相關問題