1

我正在尝试设计一些不依赖于铸造的东西。我在这里问了一个问题,我相信最终会有更好的方法,所以我正在寻求建议。

我有一个泛型Object,其中会有子类。

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

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

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

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

对于这种类型的设计,我将不胜感激。

4

1 回答 1

0

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

这就是微软 COM 的工作方式。

于 2013-05-16T01:43:41.780 回答