Delen via


Compilerwaarschuwing (niveau 1) C4722

'functie' : destructor retourneert nooit, potentieel geheugenlek

Opmerkingen

De controlestroom wordt beƫindigd in een destructor. De thread of het hele programma wordt beƫindigd en toegewezen resources worden mogelijk niet vrijgegeven. Bovendien is het gedrag van uitvoerbaar bestand niet gedefinieerd als een destructor wordt aangeroepen voor stapels die worden afwikkeld tijdens het verwerken van uitzonderingen.

Als u dit wilt oplossen, verwijdert u de functieaanroep die ervoor zorgt dat de destructor niet wordt geretourneerd.

Example

In het volgende voorbeeld wordt C4722 gegenereerd:

// C4722.cpp
// compile with: /O1 /W1 /c
#include <stdlib.h>
class C {
public:
   C();
   ~C() { exit(1); }   // C4722
};

extern void func (C*);

void Test(){
   C x;
   func(&x);
   // control will not leave Test because destructor will exit
}