Naar inhoud springen

Destructor (informatica)

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Addbot (overleg | bijdragen) op 13 mrt 2013 om 13:45. (Robot: Verplaatsing van 12 interwikilinks. Deze staan nu op Wikidata onder d:q735151)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

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.