Kursinhalt
C++ OOP
C++ OOP
Was Ist Ein Destructor Der Klasse
Syntax eines Destruktors
Obwohl sie gegensätzliche Zwecke erfüllen, ist das Erstellen eines Destruktors dem Erstellen eines Konstruktors sehr ähnlich. Sie teilen fast die gleichen Deklarationsprinzipien. Der allgemeine Ansatz zur Erstellung eines Destruktors ist:
- Name: Es hat denselben Namen wie die Klasse, wird jedoch von einer Tilde (~) vorangestellt.
- Kein Rückgabewert: Es hat keinen Rückgabewert, nicht einmal void.
- Keine Parameter: Es kann keine Parameter annehmen.
- Automatische Aufruf: Es wird automatisch vom Compiler aufgerufen, wenn das Objekt den Gültigkeitsbereich verlässt oder explizit gelöscht wird.
Automatische Aufruf von Destruktoren
Der automatische Aufruf von Destruktoren bezieht sich auf das automatische Aufrufen des Destruktors. Dies stellt sicher, dass die vom Objekt gehaltenen Ressourcen ordnungsgemäß freigegeben werden, wodurch Speicherlecks und Ressourcenlecks verhindert werden.
scope
delete
termination
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
- Wenn ein Objekt außerhalb des Gültigkeitsbereichs gerät.
- Wenn der delete-Operator verwendet wird, um dynamisch zugewiesene Objekte zu löschen.
- Wenn das Programm beendet wird.
Die Notwendigkeit von Destruktoren
Der Hauptzweck eines Destruktors besteht darin, Ressourcen freizugeben, die das Objekt während seiner Lebensdauer erworben hat. Dazu gehört das Schließen von Datei-Handles, das Freigeben von Speicher (mit new) oder ähnliche Aufgaben.
ResourceHolder
FileHandler
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Was ist der Hauptzweck eines Destruktors?
2. Wie lautet die Syntax zur Deklaration eines Destruktors?
Danke für Ihr Feedback!