Le scénario générant ceci étant assez complexe, je vais enlever quelques morceaux et donner une représentation précise des classes impliquées.C++ Héritage multiple Question
/* 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
{
};
Alors, est-ce valable? Y aura-t-il des conflits sur toString? Ou Class1 peut-il utiliser Base2 :: toString pour satisfaire IBase? Comme je l'ai dit, il y a beaucoup d'autres choses qui ne sont pas montrées, donc les suggestions pour des changements de conception majeurs sur cet exemple ne sont probablement pas utiles ... bien que toutes les suggestions/conseils généraux soient les bienvenus.
Mon autre pensée était quelque chose comme ceci:
class Class1 : public IBase, public Base2
{
virtual string toString()
{
return Base2::toString();
}
};
Cela construit et des liens, mais je n'ai aucune idée si elle a des bugs cachés.