Zurück Vor +Ebene Home Inhalt Index Hilfe

Abgeleitete Klassen ( Vererbung)

Abgeleitete Klasse (Vererbung), sei eine Klasse a gegeben. Dann definiert

class b : public a ;

eine von der Klasse a abgeleitet Klasse. Alle public und protected Member von a sind von b zugänglich.

Virtuelle Memberfunktionen , sichern bei Objektumwandlungen immer die Ausführung der richtigen Memberfunktion.
 
Wird einer Referenz oder einem Zeiger auf die Basisklasse eine Referenz oder ein Zeiger auf eine abgeleitete Instanz zugewiesen, so wird im Normalfall (ohne Virtualität) bei Aufruf der Memberfunktion über diese Referenz bzw. diesen Zeiger die Memberfunktion der Basisklasse aufgerufen. Ist die überladene Memberfunktion als virtual deklariert, so ,,merkt`` sich das Objekt seinen Ursprung und ruft die Memberfunktion der abgeleiteten Klasse auf.
 
Ohne Virtualität:

    class a
    {
       void f() { cout << ''a''; }
    }
    class b : public a
    {
       void f() { cout << ''b''; }
    }
    main() {
       b x;
       a& y = x;
       y.f();}
   }
Liefert: ,, a ``

Mit Virtualität:

   class a
   {
      virtual void f() { cout ... }
   }
   class b : public a
   {
      virtual void f() { cout ... }
   }
   main() {
      b x;
      a& y = x;
      y.f();
   }
Liefert: ,, b ``

Zurück Vor +Ebene Home Inhalt Index Hilfe

Copyright Verlag Harri Deutsch AG  Stöcker DeskTop Mathematik