Afficher : Delphi C++
Préférences d'affichage

Abort et les destructeurs

De RAD Studio

Remonter à Destructeurs - Index

Si vous appelez abort n'importe où dans un programme, aucun destructeur n'est appelé, pas même pour les variables globales.

Il est possible d'appeler un destructeur explicitement, ceci de deux façons : indirectement par un appel à delete, ou directement en utilisant le nom qualifié entier du destructeur. L'opérateur delete peut servir à détruire des objets qui ont été alloués à l'aide de new. Les appels explicites au destructeur ne sont nécessaires que pour des objets qui ont reçu une adresse spécifique par le biais d'appels à new.



 #include <stdlib.h>
 class X {
 public:
   .
   .
   .
    ~X(){};
   .
   .
   .
 };
 void* operator new(size_t size, void *ptr)
 {
    return ptr;
 }
 char buffer[sizeof(X)];
 void main()
 {
    X* pointer = new X;
    X* exact_pointer;
    exact_pointer = new(&buffer) X; // pointeur initialisé à
                                    // l'adresse du tampon
 .
 .
 .
    delete pointer;                 // delete est utilisé pour détruire le pointeur
    exact_pointer–>X::~X();         // appel direct pour désallouer
 }



Voir aussi

Autres langues