在涉及多态成员的设计决策中苦苦挣扎

时间:2013-05-16 01:39:01

标签: c++ polymorphism

我正在尝试设计一些不依赖于铸造的东西。我问了一个问题here,我相信最终有一个更好的方法,所以我在征求意见。

我有一个通用的Object,其中会有子类。

我有通用Node个对象,它们包含指向Object的指针。可以对Node进行子类化,以提供有关如何处理其Object的更具体的行为,以及设置特定节点正在使用的子类Object的类型。

问题是我的基类需要作为成员Object * myObject,以便我的应用可以遍历所有Node并在所有draw上调用myObject函数秒。

但是如何处理在子类Object上调用自定义函数的子类Node的情况?这些函数可能是真正独特的,并且在基类中没有位置。

我考虑的一个选项是子类将其指针成员存储为MyObjectSubclass * myObject,但是子类不能覆盖基类成员,对吧?所以这不起作用。

我很欣赏这种设计的更有经验的建议。

1 个答案:

答案 0 :(得分:0)

使用界面。让每个Object子类都从适合该类的接口继承,并为基类Object提供一个可以检索接口的方法。

这是Microsoft的COM工作方式。