next up previous contents index
Next: Virtuelle Destruktoren Up: 50 Ways to Improve Previous: Initialisierung durch Wertzuweisung vermeiden

Reihenfolge der Initialisierung

 

    class barray
    { int *data;
      unsigned size;
      int low, high;
    public:
      barray(int l, int h);
    };
    barray::barray(int l, int h) // FALSCH!
    : size(h-l+1),
      low(l),
      high(h),
      data(new int[size])
    {// hier alle moeglichen Tests}

Das geht schief !!!

Bei der Initialisierung von data ist size noch nicht initialisiert, da die Initialisierung in der Reihenfolge der Deklaration geschieht.

Gute Idee:

Initialisierungslisten auch in dieser Reihenfolge schreiben.


next up previous contents index
Next: Virtuelle Destruktoren Up: 50 Ways to Improve Previous: Initialisierung durch Wertzuweisung vermeiden

Peter Pfahler, 1997