Anzeigen: Delphi C++
Anzeigeeinstellungen

Abort und Destruktoren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Destruktoren - Index

Wird die abort-Routine in einem Programm aufgerufen, werden keine Destruktoren aktiviert. Dies gilt auch für Variablen mit globalem Gültigkeitsbereich.

Ein Destruktor lässt sich auf eine der beiden folgenden Arten aufrufen: indirekt über einen Aufruf von delete oder direkt über den komplett qualifizierten Namen des Destruktors Mit delete können auch Objekte gelöscht werden, die mit new erzeugt wurden. Explizite Aufrufe von Destruktoren sind nur für Objekte nötig, die durch Aufrufe von new spezifische Adressen erhalten haben.



 #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; // Zeiger initialisiert bei
                                    // Adresse des Puffers
 .
 .
 .
    delete pointer;                 // Mit delete wird der Zeiger gelöscht.
    exact_pointer–>X::~X();         // direkter Aufruf zur Speicherfreigabe
 }



Siehe auch

In anderen Sprachen