Поделиться через


Предупреждение компилятора (уровень 1) C4461

"type" : этот класс имеет метод завершения "завершения", но не деструктор "dtor"

Наличие средства завершения в типе подразумевает удаление ресурсов. Если средство завершения не вызывается явным образом из деструктора типа, среда CLR определяет, когда будет выполняться метод завершения, после того как объект выходит из области.

Если вы определяете деструктор в типе и явно вызываете метод завершения из деструктора, можно детерминированно запустить метод завершения.

Дополнительные сведения см. в разделе "Деструкторы и методы завершения".

Пример

В следующем примере создается C4461.

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

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

   !B() {}
};