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


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

"переменная": статические элементы данных управляемых или WinRTtypes должны быть определены в определении класса

Вы попытались сослаться на статический элемент класса WinRT, .NET или на интерфейс вне определения этого класса или интерфейса.

Компилятору требуется полное определение класса (для передачи метаданных после одного прохода), а статические элементы данных должны инициализироваться внутри класса.

Так, в следующем примере возникает ошибка C3366 и показано, как ее исправить.

// C3366.cpp
// compile with: /clr /c
ref class X {
   public:
   static int i;   // initialize i here to avoid C3366
};

int X::i = 5;      // C3366