Compartir a través de


Advertencia del compilador (nivel 1) C4461

'tipo' : esta clase tiene un finalizador 'finalizador' pero no un destructor 'destructor'

La presencia de un finalizador en un tipo implica que hay recursos que eliminar. Salvo que se llame explícitamente a un finalizador desde el destructor del tipo, Common Language Runtime determinará cuándo ejecutar el finalizador, después de que el objeto haya salido del ámbito.

Si se define un destructor en el tipo y se llama explícitamente al finalizador desde el destructor, el finalizador podrá ejecutarse de forma determinista.

Para obtener más información, consulte Destructores y finalizadores.

Ejemplo

El ejemplo siguiente genera el error C4461.

// C4461.cpp
// compile with: /W1 /clr /c
ref class A {
protected:
   !A() {}   // C4461
};

// OK
ref struct B {
   ~B() {
      B::!B();
   }

   !B() {}
};