标签: oop inheritance composition rtti
据说程序员应该更喜欢组合而不是继承。我想知道是否可以使用合成轻松实现RTTI?
答案 0 :(得分:0)
我想也许我现在明白你的问题,虽然我相信你是从错误的角度来看待它。在继承树中,您可以使用RTTI检查对象的类型,而没有继承树(使用组合)则没有必要,因为您只有一种可能的类型。然后,您可以设置属性或方法来指示对象的“类型”,但在真正的OOP中,您不需要检查类型,而应该让多态处理它。
在复合对象中,方法调用被转发给它的子节点;在继承树中,方法调用是虚拟的,并由派生类处理。