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


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

не может определить "member" в качестве члена управляемого типа

Элементы данных ссылочного класса CLR не могут иметь тип C++, отличный от POD. Экземпляр собственного типа POD можно создать только в типе CLR. Например, тип POD не может содержать конструктор копирования или оператор назначения.

Пример

Следующий пример приводит к возникновению ошибки C3633.

// C3633.cpp
// compile with: /clr /c
#pragma warning( disable : 4368 )

class A1 {
public:
   A1() { II = 0; }
   int II;
};

ref class B {
public:
   A1 a1;   // C3633
   A1 * a2;   // OK
   B() : a2( new A1 ) {}
    ~B() { delete a2; }
};