Destructor (informatica)
Uit Wikipedia, de vrije encyclopedie
Een destructor is in sommige object-georiënteerde programmeertalen een soort methode van een klasse die wordt aangeroepen net voordat een instantie van die klasse uit het geheugen verwijderd wordt. Niet alle object-georiënteerde programmeertalen kennen een destructor: C++ heeft bijvoorbeeld wel destructors, maar Java weer niet.
De tegenhanger van een destructor is een constructor die uitgevoerd wordt wanneer het object wordt aangemaakt.
Voorbeeld [bewerken]
In C++ ziet een destructor er zo uit:
#include <iostream>
using namespace std;
class Shape {
public:
Shape() {
cout << "Shape" << endl;
}
virtual ~Shape() {
cout << "~Shape" << endl;
}
};
class Circle: public Shape {
public:
Circle() {
cout << "Circle" << endl;
}
virtual ~Circle() {
cout << "~Circle" << endl;
}
};
int main(int argc, char** argv) {
Shape* shape = new Circle();
cout << "Shape gemaakt" << endl;
delete shape;
cout << "Shape verwijderd" << endl;
}
De uitvoer van dit programma is dan ook:
Shape Circle Shape gemaakt ~Circle ~Shape Shape verwijderd
De 'methodes' met de tilde (~) ervoor zijn in C++ destructors. Omdat ze virtual zijn, wordt de destructor van Shape aangeroepen nadat die van Circle is aangeroepen.