Destructor/de

From Lazarus wiki
Revision as of 19:27, 24 October 2012 by Olaf (talk | contribs) (Created page with "{{destructor}} <br> Zurück zu den reservierten Wörtern.<br> <br> Das Schlüsselwort <b>destructor</b> gehört zur objektorientierten Programmierung.<br...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi)

Zurück zu den reservierten Wörtern.

Das Schlüsselwort destructor gehört zur objektorientierten Programmierung.
Ein Destruktor dient dazu, den verwendeten Arbeitsspeicher wieder freizugeben.
Der Destruktor ist immer so aufzubauen, dass bei der Freigabe des Speichers der gesamte für die Klasse (das Objekt) angeforderte Speicher freigegeben wird und somit keine Speicherlecks entstehen.
D. h. alle Klassen und Objekte die von der eigenen Klasse verwendet werden sind über Ihren Destruktor zu beenden und der Speicher ist frei zu geben.

Beispiel:

// Klassendefinition
type
  TKlasse = class
    destructor Destroy; override;  // Erlaubt es den Destruktor der Elternklasse zu überschreiben
  end;

// Destruktor der eigenen Klasse
destructor TKlasse.Destroy;
begin
  ...
  inherited; // Ruft den Destruktor der Elternklasse auf
end;

var
// Variable vom Typ der Klasse bekannt machen (deklarieren)
  meineKlasse: TKlasse;

begin
  ...
  meineKlasse := TKlasse.Create; // Create ruft den Konstruktor der eigenen Klasse auf
  meineKlasse.Destroy;           // Destroy ruft den Destruktor der eigenen Klasse auf
  ...
end.



--Olaf 17:27, 24 October 2012 (UTC)