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


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

"идентификатор": элементы частично инициализированного массива должны иметь конструктор по умолчанию

Замечания

Слишком мало инициализаторов было указано для массива определяемых пользователем типов или констант. Если явный инициализатор и соответствующий конструктор не указаны для элемента массива, необходимо предоставить конструктор по умолчанию.

Эта ошибка компилятора устарела в Visual Studio 2022.

Пример

Следующий пример приводит к возникновению ошибки C2073. Исходный файл C2073.cpp:

// C2073.cpp
class A {
public:
   A( int );   // constructor for ints only
};
A a[3] = { A(1), A(2) };   // C2073, no default constructor

Исправление показано здесь в исходном файле C2073b.cpp:

// C2073b.cpp
// compile with: /c
class B {
public:
   B();   // default constructor declared
   B( int );
};
B b[3] = { B(1), B(2) };   // OK