Avertissement du compilateur (niveau 1) C4461
'type' : cette classe a un finaliseur 'finaliseur' mais aucun destructeur 'dtor'
La présence d’un finaliseur dans un type implique des ressources à supprimer. Sauf si un finaliseur est explicitement appelé à partir du destructeur du type, le Common Language Runtime détermine quand exécuter le finaliseur, une fois votre objet hors de portée.
Si vous définissez un destructeur dans le type et appelez explicitement le finaliseur à partir du destructeur, vous pouvez exécuter de manière déterministe votre finaliseur.
Pour plus d’informations, consultez Destructeurs et finaliseurs.
Exemple
L’exemple suivant génère l’erreur C4461.
// C4461.cpp
// compile with: /W1 /clr /c
ref class A {
protected:
!A() {} // C4461
};
// OK
ref struct B {
~B() {
B::!B();
}
!B() {}
};