Im gemeinsamen Diamant Szenario:Mehrfachvererbung - virtual
class MBase {
public:
MBase(int) {}
virtual char const* vf() const = 0;
virtual ~MBase() {}
};
class D1 : public MBase { //NOT VIRTUAL!!!
public:
D1() : MBase(1) {}
char const* vf() const { return "D1"; }
};
class D2 : virtual public MBase {
public:
D2() : MBase(2) {}
char const* vf() const { return "D2"; }
};
class Bottom : public D1, public D2 {
public:
char const* vf() const { return "Bottom"; }
}
Was würde sich ändern, wenn ich die Erbschaft Modifikator von unten modifiziert für beide D1 und D2 virtuell zu sein? Ich meine, würde das irgendeine Auswirkung haben:
class Bottom : public virtual D1, public virtual D2 {
public:
char const* vf() const { return "Bottom"; }
}
OK, also ich denke, wenn ich ein paar Bottoms hätte, alle praktisch von D1 und D2 erben, dann hätte das Blatt nur eine Kopie von D1 und D2 in allen ... Vielen Dank für eine perfekte Antwort! – Bober02