Accueil        LEXIQUE        Unités        Algorithmes        Tutoriel   

Sommaire lexique

Constructeur et Destructeur


Les constructeurs et les destructeurs sont des méthodes spéciales pour l'initialisation et la désinitialisation correctes des objets.

Les objets avec des méthodes virtuelles doivent avoir un constructeur et celui-ci doit être appelé pour chaque nouvelle instance de l'objet. Sinon, le pointeur vers la table de méthodes virtuelles dans l'objet ne serait pas initialisé et des erreurs d'exécution se produiraient lors de l'appel des méthodes virtuelles.

Exemple:

type
    Figur =
        object
            x, y: Real;
            constructor Init(initX, initY: Real);
            destructor Done; virtual;
            procedure Draw; virtual;
        end;
    Kreis =
        object (Figur)
            radius: Real;
            constructor Init(initX, initY, initRadius: Real);
            destructor Done; virtual;
            procedure Draw; virtual;
        end;

    constructor Figur.Init(initX, initY: Real);
        begin
            x := initX;
            y := initY;
        end;

    destructor Figur.Done;
        begin
        { Effacer ce chiffre... }
        end;

    constructor Kreis.Init(initX, initY, initRadius: Real);
        begin
            Figur.Init(initX, InitY);
            radius := initRadius;
        end;

    destructor Kreis.Done;
        begin
            { Effacer ce cercle... }
        end;
Notez que les constructeurs ne peuvent pas être déclarés comme virtuels. Les destructeurs, en revanche, peuvent être virtuels, et cela a souvent du sens.

Le constructeur Kreis.Init appelle d'abord le constructeur du type de base. Au lieu de cela, nous aurions pu initialiser nous-mêmes les deux champs de données x et y, mais en réalité ils ont été introduits de type Figur et c'est donc également responsable de leur initialisation..

Sommaire lexique


Copyright © 2021 par Albatros Concept (Bruno Aubin)