我正在尝试设计一些不依赖于铸造的东西。我问了一个问题here,我相信最终有一个更好的方法,所以我在征求意见。
我有一个通用的Object
,其中会有子类。
我有通用Node
个对象,它们包含指向Object
的指针。可以对Node
进行子类化,以提供有关如何处理其Object
的更具体的行为,以及设置特定节点正在使用的子类Object
的类型。
问题是我的基类需要作为成员Object * myObject
,以便我的应用可以遍历所有Node
并在所有draw
上调用myObject
函数秒。
但是如何处理在子类Object上调用自定义函数的子类Node的情况?这些函数可能是真正独特的,并且在基类中没有位置。
我考虑的一个选项是子类将其指针成员存储为MyObjectSubclass * myObject
,但是子类不能覆盖基类成员,对吧?所以这不起作用。
我很欣赏这种设计的更有经验的建议。
答案 0 :(得分:0)
使用界面。让每个Object子类都从适合该类的接口继承,并为基类Object提供一个可以检索接口的方法。
这是Microsoft的COM工作方式。