Zeiger auf Objekte selbsterstellter Klassen

Die entscheidende Rolle des Destruktors (2/2)

Wird der Defaultkonstruktor aufgerufen, passiert mit y gar nichts. Wird hingegen ein anderer Konstruktor aufgerufen, so wird auf alle Fälle dem Pointer ein Speicherbereich zugeordnet. Dieser wird bei der Zerstörung des Objekts durch den Destruktor wieder freigegeben.

void f()
{
  A a;   // A() wird aufgerufen, mit y passiert nichts
}        // a verläßt Gültigkeitsbereich: ~A() wird aufgrufen,
         //                                  delete y wird ausgeführt

void f()
{
  A a(3, 4);   // A(int, int ) wird aufgerufen, new wird aufgerufen
}        // a verläßt Gültigkeitsbereich: ~A() wird aufgrufen,
         //                                  delete y wird ausgeführt

Ein etwas komplexeres Beispiel wird später behandelt bei der Definition einer verketteten Liste.