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


Предупреждение компилятора (уровень 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() {}
};