Partilhar via


Aviso do compilador (nível 1) C4461

'type': esta classe tem um finalizador 'finalizer', mas nenhum destruidor 'dtor'

A presença de um finalizador em um tipo implica que serão excluídos recursos. A menos que um finalizador seja explicitamente chamado a partir do destruidor do tipo, o common language runtime determina quando executar o finalizador depois que o objeto ficar fora do escopo.

Se você definir um destruidor no tipo e chamar explicitamente o finalizador a partir do destruidor, poderá executar deterministicamente seu finalizador.

Para obter mais informações, confira Destruidores e finalizadores.

Exemplo

O exemplo a seguir gera C4461.

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

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

   !B() {}
};