說我有一個繼承類與函數A和B. B做了一些事情,並調用A. 基類也有函數A和B. B以不同的方式做事情,然後調用A(派生類的A)。然而,在特定情況下,我想調用基類的B.這是使用Base :: B()完成的。然後B會打電話給A,我的問題是,它會打電話給A?基礎的還是繼承的?繼承,隱藏函數和範圍C++
0
A
回答
2
這取決於A是否是虛擬的。如果虛擬派生版本將被調用,否則它將是基礎版本。
0
您在這裏提出一個通用的場景,但它足以確定您指的是MRO,又名方法解析順序,這是算法(或類算法,你可以使用這個縮寫指一個普通的話題或一個特定的單一事物)用於確定哪種方法需要被調用。
MRO如何在標準中描述的C++情況下工作,但在SO上有一個專用標籤method-resolution-order和an answer,可以給你一個廣泛的觀點。
相關問題
- 1. C++繼承和隱藏不需要的繼承函數
- 2. C++中的繼承,範圍和模板構造函數
- 3. C#隱藏繼承成員
- 4. C#:繼承,重寫和隱藏
- 5. C#繼承和成員隱藏
- 6. 指令範圍和繼承
- 7. 繼承,隱藏和重載
- 8. Pundit範圍繼承
- 9. 繼承時的範圍規則 - C++
- 10. 繼承的C++範圍解析使用
- 11. C++繼承,隱藏基礎方法
- 12. C++通過繼承隱藏變量?
- 13. 通過繼承隱藏C#結構
- 14. JavaScript繼承範圍問題
- 15. AngularJS $範圍繼承服務
- 16. AngularJS指令範圍繼承
- 17. 指令/範圍繼承
- 18. Python的繼承和範圍問題
- 19. Java繼承:隱藏字段
- 20. 隱藏繼承成員
- 21. 部分隱藏繼承樹
- 22. 類,隱藏屬性和繼承
- 23. ASP.NET的CodeFile,代碼隱藏和繼承
- 24. 繼承和隱藏父母的屬性
- 25. 的WebAPI 2繼承和隱藏屬性
- 26. C++函數範圍
- 27. C中的繼承和構造函數#
- 28. 繼承和朋友函數在C + +
- 29. C++繼承和函數重寫
- 30. 構造函數和繼承C++