【发布时间】:2014-06-30 18:11:52
【问题描述】:
我有 3 个这样的接口(纯虚拟)类
class A {
virtual void M1() = 0;
virtual void M2() = 0;
};
class B : public A {
virtual void M3() = 0;
};
class C : public A {
virtual void M4() = 0;
};
我有这样的实现者
class Aimpl : A {
void M1 () override {};
void M2 () override {};
}
class Bimpl: public Aimpl, public B{
void M3() override {};
}
class Cimpl: public Aimpl, public C{
void M4() override {};
}
和
Bimpl b = Bimpl();
b.M2() // Error. M2 is ambigous. Can be from Aimpl or A
有什么简单的方法可以解决这个问题?我希望能够在函数中传递 B 或 C 而不是 Bimpl
【问题讨论】:
-
没有。上市。忘记那里的关键字
标签: c++ inheritance