1

据说程序员应该更喜欢组合而不是继承。我想知道是否可以使用组合轻松实现 RTTI?

4

1 回答 1

0

我想也许我现在明白了你的问题,尽管我相信你是从错误的角度来的。在继承树中,您可以使用 RTTI 检查对象的类型,而没有继承树(使用组合代替)则没有必要,因为您只有一种可能的类型。然后,您可以设置属性或方法来指示对象的“类型”,尽管在真正的 OOP 中您不需要检查类型,而应该让多态来处理它。

在复合对象中,方法调用被转发给它的子对象;在继承树中,方法调用是虚拟的,由派生类处理。

于 2013-04-04T16:21:31.620 回答