next up previous contents index
Next: Reihenfolge der Initialisierung Up: 50 Ways to Improve Previous: Copy-Konstruktor und = Operator

Initialisierung durch Wertzuweisung vermeiden

   

    class person
    { string name;
      date geburtstag;
      public:
      person(const string& n, const date& d);
    };

Zwei Versionen des Konstruktors:

1.
   person::person(const string& n, 
                  const date& d)
   : name(n), geburtstag(d) {}

2.
   person::person(const string& n, 
                  const date& d)
   { name = n;
     geburtstag = d
   }

Die zweite Version funktioniert nicht für const- und Referenz-Member, da an diese nicht zugewiesen werden darf.    

Ansonsten ist die zweite Version langsamer, da zusätzlich zu den Wertzuweisungen die beiden default-Konstruktoren ausgeführt werden müssen.


next up previous contents index
Next: Reihenfolge der Initialisierung Up: 50 Ways to Improve Previous: Copy-Konstruktor und = Operator

Peter Pfahler, 1997