说我有一个继承类与函数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++