这个情景非常复杂,因此我将剥离一些部分,并准确地呈现所涉及的类。
/* This is inherited using SI by many classes, as normal */
class IBase
{
virtual string toString()=0;
};
/* Base2 can't inherit IBase due to other methods on IBase which aren't appropriate */
class Base2
{
string toString()
{
...
}
};
/* a special class, is this valid? */
class Class1 : public IBase, public Base2
{
};
那么,这个是否有效?toString会有冲突吗?或者Class1可以使用Base2::toString来满足IBase吗? 就像我说的,还有很多其他未显示的东西,所以对于这个示例的主要设计更改的建议可能没有那么有帮助...但是任何一般性的建议/建议都是受欢迎的。 我的另一个想法是这样的:
class Class1 : public IBase, public Base2
{
virtual string toString()
{
return Base2::toString();
}
};
这个构建并链接了,但我不知道它是否存在隐藏的错误。