Ich möchte wissen, was eine " virtuelle Basisklasse " ist und was sie bedeutet. Lassen Sie mich ein Beispiel zeigen: class Foo { public: void DoSomething() { /* ... */ } }; class Bar : public virtual Foo { public: void DoSpecific() { /* ... */
Ich möchte wissen, was eine " virtuelle Basisklasse " ist und was sie bedeutet. Lassen Sie mich ein Beispiel zeigen: class Foo { public: void DoSomething() { /* ... */ } }; class Bar : public virtual Foo { public: void DoSpecific() { /* ... */
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Ich...
Ich verstehe nicht, warum im folgenden Code, wenn ich ein Objekt vom Typ instanziiere daughter, der Standardkonstruktor grandmother()aufgerufen wird. Ich dachte, dass entweder der grandmother(int)Konstruktor aufgerufen werden sollte (um der Spezifikation meines motherKlassenkonstruktors zu...
Wir alle wissen, dass bei Verwendung einer einfachen Einzelvererbung die Adresse einer abgeleiteten Klasse mit der Adresse der Basisklasse übereinstimmt. Mehrfachvererbung macht das unwahr. Macht die virtuelle Vererbung das auch falsch? Mit anderen Worten, ist der folgende Code korrekt: struct A...