next up previous contents index
Next: Ganzahlige Klassenkonstanten Up: 50 Ways to Improve Previous: Elementfunktionendie Pointer auf

Keine Referenzen auf lokale Objekte zurückgeben

 

Lokale Objekte existieren nicht mehr nach Rückkehr aus der Funktion.

Abhilfe durch dynamische allokierte Objekte birgt die Gefahr des Speicher-Lecks:  

    complex& operator +(const complex& c1,
                        const complex& c2)
    { complex* res = new complex
                         (c1.r + c2.r,
                          c1.i + c2.i);
      return *res;
    }

Wer ruft das dazugehörige delete auf?.

    complex& four = two + two;
    ...
    delete &four;

Entweder der Programmierer vergißt es, oder er hat gar keine Chance:

    complex eight = two + two + two + two;

Also: Wertrückgabe.


next up previous contents index
Next: Ganzahlige Klassenkonstanten Up: 50 Ways to Improve Previous: Elementfunktionendie Pointer auf

Peter Pfahler, 1997