Erro do compilador C2073
'identifier': elementos de matriz parcialmente inicializada precisam ter um construtor padrão
Comentários
Poucos inicializadores foram especificados para uma matriz de tipos ou constantes definidos pelo usuário. Se um inicializador explícito e o construtor correspondente não forem especificados para um membro da matriz, um construtor padrão deverá ser fornecido.
Esse erro compilador ficou obsoleto no Visual Studio 2022.
Exemplo
O exemplo a seguir gera o erro C2073. Arquivo de origem C2073.cpp
:
// C2073.cpp
class A {
public:
A( int ); // constructor for ints only
};
A a[3] = { A(1), A(2) }; // C2073, no default constructor
Uma correção é mostrada no arquivo de origem C2073b.cpp
:
// C2073b.cpp
// compile with: /c
class B {
public:
B(); // default constructor declared
B( int );
};
B b[3] = { B(1), B(2) }; // OK