3.6 Initialisierungsliste
  • Die Komponenten einer Klasse (A) können ebenfalls andere Klassen sein (B).
  • Damit im Konstruktor von A auch B mit einem parametrisierten Konstruktor aufgerufen werden kann, muss eine erweiterte Konstruktordefinition mit einer Initialisierungsliste genutzt werden:

            Klasse::Klasse(Parameterliste) : Attribut(Parameter,...), ...  {
                 ...
            }

    Beispiel:

            KlasseA::KlasseA (int a) : VarB(a) {
            }

    Die Initialisierungsliste ist auch auf einfache Datentypen anwendbar.
  • Mit Hilfe von Initialisierungslisten können auch Konstanten und Referenzen innerhalb einer Klasse initialisiert werden (und nur so):

    ...
       private:
            char* feld;
            const int groesse;
            ...
       public:
            Klasse::Klasse(int feldlaenge = 1024)
                           : groesse(feldlaenge), field(new char[feldlänge]) {
            }
            ...
    ...