Difference between revisions of "Destructor/de"

From Free Pascal wiki
Jump to navigationJump to search
m
m (Fixed syntax highlighting; deleted category already in page template)
 
Line 1: Line 1:
 
{{destructor}}
 
{{destructor}}
<br>
+
 
Zurück zu den [[Reserved words/de|reservierten Wörtern]].<br>
+
Zurück zu den [[Reserved words/de|reservierten Wörtern]].
<br>
+
 
Das Schlüsselwort <b>destructor</b> gehört zur objektorientierten Programmierung.<br>
+
 
Ein Destruktor dient dazu, den verwendeten Arbeitsspeicher wieder freizugeben.<br>
+
Das Schlüsselwort <b>destructor</b> gehört zur objektorientierten Programmierung.
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.<br>
+
 
D. h. alle Klassen und Objekte die von der eigenen Klasse verwendet werden sind über Ihren Destruktor zu beenden.<br>
+
Ein Destruktor dient dazu, den verwendeten Arbeitsspeicher wieder freizugeben.
<br>
+
 
Beispiel:<br>
+
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.
<syntaxhighlight>
+
 
 +
D. h. alle Klassen und Objekte die von der eigenen Klasse verwendet werden sind über Ihren Destruktor zu beenden.
 +
 
 +
Beispiel:
 +
 
 +
<syntaxhighlight lang=pascal>
 
// Klassendefinition
 
// Klassendefinition
 
type
 
type
Line 34: Line 39:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
<br>
 
--[[User:Olaf|Olaf]] 17:27, 24 October 2012 (UTC)
 
[[Category:Reserved words/de]]
 

Latest revision as of 08:30, 12 February 2020

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.

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.