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


Ошибка компилятора C3162

Type: ссылочный тип, имеющий деструктор, не может использоваться в качестве типа элемента статических данных "member"

Среда CLR не может знать, когда следует запускать определяемый пользователем деструктор, если класс также содержит статическую функцию-член.

Деструктор никогда не будет выполняться, если объект не удаляется явным образом.

Дополнительные сведения см. в следующих разделах:

Пример

В следующем примере возникает ошибка C3162.

// C3162.cpp
// compile with: /clr /c
ref struct A {
   ~A() { System::Console::WriteLine("in destructor"); }
   static A i;   // C3162
   static A^ a = gcnew A;   // OK
};

int main() {
   A ^ a = gcnew A;
   delete a;
}