Hallo,
ich habe eine Frage zu den "new" und "delete" - Funktionen in C++ :
Ich habe eine Klasse "CBasePart". Diese Klasse Besitzt SET und GET-Funktionen,
um Ihre Nutzdaten (hier : Integer-Werte) zu setzen und Auszugeben.
ich habe nun folgende Funktion :
Das seltsame ist : Hier gibt es KEINEN SegFault ????Code:void foo() { CBasePart *aPart = new CBasePart(3) ; // Neues Objekt anlegen => "3" als Nutzdatum cout << aPart->GetValue() << endl ; delete aPart ; // aPart Objekt loeschen aPart->SetValue(5) ; // Sollte hier SegFaulten !! cout << apart->GetValue() << endl ; }
Das Programm gibt brav :
aus, dabei sollte doch spätestens beim aPart->SetValue(5) Aufruf ein SegFaultCode:3 5
auftreten, da das aPart-Objekt doch per delete gelöscht wurde ???
Meine Frage : Warum funzt das denn immer noch (ohne segFault) ??
Werden mit delete gelöschte Objekte nicht Automatisch mit NULL Überschrieben ??
PS : Compiliert habe ich das mit dem g++ Ver. 2.95 und g++ Ver. 3.2
Neugierige Grüsse
DanDanger
Lesezeichen