Virtuelle Basis?
-
Hallo,
Ich hab folgendes schon öfters gesehen und es würde mich interssieren was es eigentlich bewirkt:class A{} class B:public virtual A{}
Was bedeutet das virtual da?
-
-
Danke, ich werd mir das mal ansehen.
-
Ok ich glaub ich hab das jetzt verstanden aber werden bei folgendem Beispiel 2 UltimateBase erzeugt oder hab ich das doch nicht so ganz verstanden:
class UltimateBase{};
class Base1:public virtual UltimateBase{};
class Base2:public virtual UltimateBase{};
class Base3:public UltimateBase{};
class Derived:public Base1,public Base2,public Base3{};
Ein UltimateBase das von Base1 und Base2 geteilt wird und eines für Base3.Und was passiert im folgenden Beispiel:
class UltimateBase{}; class Base1:public virtual UltimateBase{}; class Base2:public virtual UltimateBase{}; class Derived1:public Base1,public Base2{}; class Base3:public virtual UltimateBase{}; class Base4:public virtual UltimateBase{}; class Derived2:public Base3,public Base4{}; class UltimateDerived:public Derived1,public Derived2{};
-
Fragender2 schrieb:
Ok ich glaub ich hab das jetzt verstanden aber werden bei folgendem Beispiel 2 UltimateBase erzeugt oder hab ich das doch nicht so ganz verstanden:
class UltimateBase{};
class Base1:public virtual UltimateBase{};
class Base2:public virtual UltimateBase{};
class Base3:public UltimateBase{};
class Derived:public Base1,public Base2,public Base3{};
Ein UltimateBase das von Base1 und Base2 geteilt wird und eines für Base3.Und was passiert im folgenden Beispiel:
class UltimateBase{}; class Base1:public virtual UltimateBase{}; class Base2:public virtual UltimateBase{}; class Derived1:public Base1,public Base2{}; class Base3:public virtual UltimateBase{}; class Base4:public virtual UltimateBase{}; class Derived2:public Base3,public Base4{}; class UltimateDerived:public Derived1,public Derived2{};
Das solte helfen:
Definire mal in jeder Klasse non-args Konstruktor mit couts.
Dieses wird dir die Antwort geben in welcher Reihenfolge die Konstruktoren aufgerufen werden.