next up previous contents index
Next: Überladen von new Up: 50 Ways to Improve Previous: delete für Pointer-Klassenelemente aufrufen

Ergebniswert von new testen

 

Wenn new keinen Speicher allokieren kann, wird 0 zurückgegeben. Dies muß abgefangen werden, und zwar IMMER!

Präprozessor-Makros wie

    #define NEW(PTR,TYPE)\
    (PTR) = new TYPE\
    assert ((PTR) != 0)

helfen dabei nicht, da new verschiedene Formen haben kann:

    new T;
    new T[size];
    new T(arguments);

und durch Überladen neue Signaturen bekommen kann.


next up previous contents index
Next: Überladen von new Up: 50 Ways to Improve Previous: delete für Pointer-Klassenelemente aufrufen

Peter Pfahler, 1997