Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Obj. über Construcor übergeben und in priv. Var. speiche

  Alt 8. Jan 2010, 17:45
Zitat von sx2008:
Die 1. Version ist richtig; die 2. Version erzeugt ein Speicherleck.
>>warum funktioniert die 1. Version auch, obwohl FPrivVariable gar nicht "erstellt" wurde?
Weil der Speicher für das Objekt der Klasse Txyz schon reserviert wurde, bevor der Constructor aufgerufen wird.
Generell ist der Ablauf bei Delphi so:
1.) Speicher für neues Objekt reservieren
2.) Speicher mit Nullen füllen
3.) Constructor aufrufen
Im Prinzip klingt das für mich auch plausibel, ABER: Wenn ich z.B. innerhalb eines Objektes mit einer StringList arbeite und welche nicht durch den Konstruktor übergeben wird, dann muss ich diese ja im Konstruktor auch erstellen, um damit arbeiten zu können und den Speicher im Destruktor wieder freigeben. Warum? Wird der Speicher bei der Übergabe automatisch erzeugt, weil nur eine Referenz übergeben wird? Dann wäre es klar Danke!
Michael Kübler
  Mit Zitat antworten Zitat