很长一段时间以来,我一直在寻找一种干净的方式.在我的问题中,有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();
}
Run Code Online (Sandbox Code Playgroud)
在这个问题中,"独立"类型的对象由我无法更改的库提供.我想定义一个基类,它使用稍后将继承的方法.我找不到使用虚拟继承执行此操作的正确方法,而不会导致模糊编译.