Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 1) C4461

"type" : ta klasa ma finalizator "finalizer", ale nie destruktor "dtor"

Obecność finalizatora w typie oznacza zasoby do usunięcia. O ile finalizator nie jest jawnie wywoływany z destruktora typu, środowisko uruchomieniowe języka wspólnego określa, kiedy należy uruchomić finalizator, gdy obiekt wykracza poza zakres.

Jeśli zdestruktor zostanie zdefiniowany w typie i jawnie wywołasz finalizator z destruktora, możesz deterministycznie uruchomić finalizator.

Aby uzyskać więcej informacji, zobacz Destruktory i finalizatory.

Przykład

Poniższy przykład generuje C4461.

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

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

   !B() {}
};