Einzelnen Beitrag anzeigen

Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Objekte in Klassen: Was wird alles zerstört?

  Alt 27. Nov 2005, 12:42
Zitat von ichbins:
Der Fehler beim Freigeben von Klasse B liegt vielleicht daran dass der Inhalt des Pointers auf KlasseB schon geleert wurde. Jedenfalls wird die Klasse nicht freigegeben:

Delphi-Quellcode:
var
  a:array[1..1000000] of tsuperklasse;
  i:integer;
begin
  for i:=low(a) to high(a) do begin
    sk:=tsuperklasse.Create;
    sk.klasseb:=tklasseb.create;
    sk.klasseb.klassea:=tklassea.Create;
    sk.Free;
  end;
end;
Der RAM-Verbrauch der Anweundung steigt jedesmal um einige MB an.
Hm, ja aber ohne jetzt die jeweiligen Destructoren zu sehen, geh ich mal von den Standard destructoren aus und damit is klar, dass weder KlasseB noch die in KlasseB enthaltene KlasseA freigegeben wird, womit sich auch der vermehrte Ramverbrauch erklärt.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat