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()
void f()
{
A a; // A() wird aufgerufen, mit y passiert nichts
} // a verläßt Gültigkeitsbereich: ~A() wird aufgrufen,
// delete y wird ausgeführt
{
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.