Ich habe dieses Problem, das ich nicht weiß, wie man richtig löst.C++ - OOP-Design - Mehrfachvererbung und reine virtuelle Methode
class A : public B, public C
{
virtual void GetSomethingElse()
{
}
}
class B
{
public void GetSomething()
{
GetSomethingElse();
}
virtual void GetSomethingElse() = 0;
}
class C
{
virtual void GetSomethingElse() = 0;
}
Im Grunde, was ich habe, sind zwei abstrakte Klassen B
, C
. Normalerweise muss ich nur einen von ihnen erben, aber in einigen besonderen Fällen brauche ich beide.
So lösen Sie dieses Problem mit GetSomethingElse()
Methode, die von B
aufgerufen werden muss. Wenn ich nur B
erben, wird es in Kind implementiert werden. Wenn nur von C
, ist alles noch in Ordnung. Allerdings, wenn ich erben B
und C
, habe ich einige "seltsame" Design, das Diamond Vererbungs Problem resemlbes, aber es ist ziemlich nicht das Gleiche.
Ich sehe kein Problem von B und C. Welches Problem haben Sie genau? –
Können Sie Code bereitstellen, der den Fehler erzeugt, den Sie lösen möchten? – Galik