Hier noch ein Beispiel,
dass der gemeinsame Speicherbereich nicht für obj1 u. obj2 freigegeben ist:
Delphi-Quellcode:
procedure testFreeAndNil;
var
Temp: TObject;
obj1, obj2: TestKlasse;
begin
obj1 := TestKlasse.Create;
obj1.n := 11;
obj2 := obj1;
FreeAndNil(obj1);
ShowMessage(
//'obj1.n = ' + IntToStr(obj1.n) + #13+ {würde zu Zugriffsverletzung führen}
'obj2.n = ' + IntToStr(obj2.n) + #13+ {Ausgabe: n = 11 !}
//'obj1.ClassName = ' + obj1.ClassName + #13+ {würde zu Zugriffsverletzung führen}
'obj2.ClassName = ' + obj2.ClassName ); {klappt}
end;