Destructor (informatica)

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

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.

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.