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


Предупреждение компилятора (уровень 3) C4534

Конструктор не будет конструктором по умолчанию для класса "class" из-за аргумента по умолчанию

Неуправляемый класс может иметь конструктор с параметрами, имеющими значения по умолчанию, и компилятор будет использовать это в качестве конструктора по умолчанию. Класс, помеченный ключевое слово value , не будет использовать конструктор со значениями по умолчанию для его параметров в качестве конструктора по умолчанию.

Дополнительные сведения см. в статье Классы и структуры.

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

// C4534.cpp
// compile with: /W3 /clr /WX
value class MyClass {
public:
   int ii;
   MyClass(int i = 9) {   // C4534, will not be the default constructor
      i++;
   }
};

int main() {
   MyClass ^ xx = gcnew MyClass;
   xx->ii = 0;
}