Cursusinhoud
C++ OOP
C++ OOP
Wat Is Een Destructor van de Klasse
Destructors zijn speciale lidfuncties die worden aangeroepen wanneer de levensduur van een object's
eindigt. Hun voornaamste doel is het vrijgeven van bronnen die het object tijdens zijn levensduur heeft verkregen.
Syntaxis van Destructor
Hoewel ze tegengestelde doelen dienen, lijkt het aanmaken van een destructor sterk op het aanmaken van een constructor. Ze delen vrijwel dezelfde declaratieprincipes. De algemene aanpak voor het aanmaken is:
Naam: heeft dezelfde naam als de klasse, maar wordt voorafgegaan door een tilde (
~
);Geen returntype: heeft geen returntype, zelfs geen void;
Geen parameters: kan geen parameters aannemen;
Automatische aanroep: wordt automatisch aangeroepen door de compiler wanneer het object buiten scope raakt of expliciet wordt verwijderd.
Automatische Aanroep van Destructors
De automatische aanroep van destructors verwijst naar het automatisch aanroepen van de destructor. Dit zorgt ervoor dat bronnen die door het object worden vastgehouden correct worden vrijgegeven, waardoor geheugenlekken en resourcelekken worden voorkomen.
scope.cpp
delete.cpp
termination.cpp
int main() { { Example obj; // Object created } // Object goes out of scope here, destructor is invoked }
wanneer een object buiten scope raakt;
wanneer de
delete
-operator wordt gebruikt om dynamisch gealloceerde objecten te verwijderen;wanneer het programma beëindigt.
De Noodzaak van Destructors
Het primaire doel van een destructor is het vrijgeven van bronnen die door het object tijdens zijn levensduur zijn verkregen. Dit omvat het sluiten van bestandskoppelingen, het vrijmaken van geheugen (met behulp van new
) of vergelijkbare taken.
ResourceHolder.cpp
FileHandler.cpp
class ResourceHolder { public: DynamicArray(int size) { data = new int(100); } ~DynamicArray() { delete data; } private: int* data; };
1. Wat is het primaire doel van een destructor?
2. Wat is de syntaxis voor het declareren van een destructor?
Bedankt voor je feedback!