5.6 Abstrakte Basisklassen
  • Im Zusammenhang mit Polymorphie und Mehrfachvererbungen können "Prototypen" von Klassen definiert werden. Diese werden als abstrakte Klassen bezeichnet.
  • Aus abstrakte Klassen lassen sich keine Objekte definieren. Sie sind nur für Vererbungen geeignet.
  • In einer abstrakten Klasse gibt es mindestens eine rein virtuelle Funktion:

             class Abstrakt {
                  ...
                  virtual Typ  Funktion (Parameter) =0;
                  ...
             }
  • Wenn alle Member-Funktionen rein virtuell sind, spricht man von abstrakten Datentypen. Diese definieren zwar alle Schnittstellen, sind aber frei von allen Implementierungsdetails:

             class ImplementAbstrakt {
                  ...
                  Typ  Funktion (Parameter) { tueEs(); }
                  ...
             }

    Der Benutzer kann ohne die Implementierung zu kennen sagen:

             class Konkret: public Abstrakt, private ImplementAbstrakt {
                  ...
             }