Sdílet prostřednictvím


Chyba kompilátoru C3162

'type' : referenční typ, který má destruktor, nelze použít jako typ statického datového členu "member"

Poznámky

Modul CLR (Common Language Runtime) nemůže vědět, kdy spustit destruktor definovaný uživatelem, pokud třída obsahuje také statickou členovou funkci.

Destruktor se nikdy nespustí, pokud objekt neodstraníte explicitně.

Další informace najdete v tématu .

Příklad

Následující příklad vygeneruje 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;
}