zurück weiter

Ein Destruktor

G.Eichelsdörfer
Staatliche Technikerschule Weilburg

Die kleine Klasse DoubleArray ist mittlerweile recht flexibel im Einsatz. Dazu trägt unter Anderem die im Konstruktor eingebaute Speicherallokation bei. Wenn ein DoubleArray-Objekt angelegt wird, reserviert der Konstruktor im angelegten Objekt den Speicherplatz für ein Datenfeld der geforderten Größe (Konstruktorparameter). Es stellt sich nun allerdings die folgende Frage:

Wer gibt den vom DoubleArray-Objekt allokierten Speicher frei?

Weil der Datenfeldzeiger im Objekt private ist - und das ist gut so, kann die Freigabe nicht außerhalb des Objektes erfolgen. Es stellt sich auch die Frage

Wann soll der allokierte Speicher freigegeben werden?

Die letzte Frage ist leicht zu beantworten:

Der allokierte Speicher ist dann freizugeben, wenn das DoubleArray-Objekt nicht mehr benötigt wird, also wenn es "stirbt".
Hier ist ein ähnlicher Automatismus wie zum Initialisieren beim Anlegen des Objektes zweckmäßig. Immer wenn ein Objekt entfernt wird, werden "Aufräumarbeiten" erledigt.

Das erledigt der Destruktor.

Nun, wo der Verantwortliche für diese Arbeiten gefunden ist, muss noch erörtert werden, wie ein solcher zu codieren ist. Während man in einer Klasse per Überladen mehrere Konstruktoren zur Verfügung stellen kann, gibt es in einer Klasse höchstens einen Destruktor.


Auftrag

Bauen Sie diesen Destruktor in die Klasse DoubleArray ein!
Diese Klasse wird im Folgenden erweitert.