這個問題在一個網站上被問到,我認爲它必須有一個關於它的信息,因爲當我們創建一個抽象類時,它是純虛函數必須在派生類中實現的條件。基地是否有關於從他們派生的類的任何信息?
回答
基類沒有關於它們的子類的任何信息。 它的子類有關於基類的信息。
取決於你對信息的意思。通過[CRTP](https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern),基類可以訪問派生類的所有公共成員。 – NathanOliver
@NathanOliver是的,我的意思是在Regular。對不起,沒有指定。 –
@NathanOliver我不知道CRTP。很有意思! –
一般來說它取決於你的名字「信息」 如果你已經聲明瞭一個基類中的虛函數 你可以說編譯基類中生成一個跳轉列表,當您從基類派生,並聲明函數是什麼它具有與虛擬基類函數相同的聲明,編譯器只需將派生類中的函數地址放置到基類中的該跳轉列表中即可。 這當然是由派生類完成的。
如果您有繼承鏈,最後一個實例化的類將放置其函數的地址。而當基類試圖調用函數時,它只是使用跳轉列表跳轉到正確的函數。
- 1. C++,許多類從類派生,所有的派生類使用從別的東西派生的類,但他們的基地使用該化酶的基礎
- 2. 基於派生類的關係
- 3. 是否有任何git命令來顯示關於本地分支的信息?
- 4. 是否有可能從基類調用派生類函數
- 5. 基類和派生類的運行時類型信息
- 6. 接口用於從基類派生的其他屬性
- 7. 如何從其他派生類訪問其他派生類?
- 8. Android中的Google專有協議。有關他們的任何信息?
- 9. 如何基於特定的派生類
- 10. 任何類從一般基類派生的方法
- 11. 是否需要從所有派生類調用虛擬基類構造函數?即使他們不是最派生的?
- 12. 如果派生類包含其他方法和成員,static_cast是否可以從基類完成派生類?
- 13. 基地和派生類
- 14. 從基地創建一個派生類
- 15. 從派生類到基類
- 16. 從基類INITIALISE派生類
- 17. 是否可以使用「this」從派生對象的基類發出信號
- 18. 關於動態演基地的地址和派生對象
- 19. MongoDB是否存儲關於文檔屬性類型的任何信息?
- 20. Casating從派生基地,ambiguouty
- 21. 是否有可能從C++中的基類方法返回派生類?
- 22. 使用在基類派生類,而派生類的基類
- 23. 是否可以從基類構造函數創建派生類?
- 24. C#是否可以從派生類中調用基類屬性
- 25. 關於基類和派生類的構造函數調用
- 26. 關於派生類初始化中的基類
- 27. 關於此錯誤的任何信息
- 28. weak_ptr的基類,而shared_ptr是派生類?
- 29. 使用派生類'typedef的基地
- 30. 從基類修改派生類的值
您使用CRTP還是常規繼承? – NathanOliver
父類不需要知道有關子類的任何信息,只要*編譯器*知道所有這些就足夠了。 –