【发布时间】:2009-06-18 02:48:02
【问题描述】:
长期以来,我一直在寻找一种干净的方式来做到这一点。在我的问题中,存在 3 个类不共享任何父类,但每个类都有一些同名的方法(A.doSomething、B.doSomething、C.doSomething)。因此,具有相同的函数签名,从 A 继承并使用方法 doSomething() 的类 D 与从 B 或 C 继承的 E “看起来相同”。
这是我想要做的事情的草图:
class Base {
public:
void myMethod(void) { doSomething(); }
};
class Independent {
public:
doSomething();
};
clase Derived : public Base : public Independent {
(...)
};
int main(void) {
Derived *derivedObject = new Derived();
derivedObject->myMethod();
}
在这个问题中,“独立”类型的对象由我无法更改的库提供。我想定义一个使用稍后将被继承的方法的基类。我找不到使用虚拟继承而不引起歧义编译的正确方法。
【问题讨论】:
-
你能把你的问题解释清楚一点吗?我在该代码 sn-p 中只看到一个名为“doSomething”的方法,但您在描述中提到了三个具有它的类,并且您没有评论“myMethod”方法的用途。