next up previous
Nächste Seite: Kopier-Konstruktor Aufwärts: Visual C++ Vorlesung Vorherige Seite: Überladen von Operatoren

Genügt wirklich Konstruktor und Destruktor?

Nein! Betrachten wir uns obige Operatorfunktion.

Wir wollen den Vektor v zurückgeben, dieser ist jedoch eine lokale Variable, d.h. mit der schließenden Klammer der Funktion (letzte Zeile) wird der Destruktor für v aufgerufen und damit der bei der Konstuktion allokierte Speicherplatz wieder freigegeben.

Der Compiler gibt zwar eine Kopie von v, nämlich die beiden Komponenten Zeiger vector und Integer dimension, zurück, der allokierte Speicherplatz ist aber verschwunden, und damit: Programmabsturz!



Unterabschnitte


1999-12-13