Compartir vía


Error del compilador C2073

'identifier': los elementos de la matriz inicializada parcialmente deben tener un constructor predeterminado

Comentarios

Se especificaron demasiado pocos inicializadores para una matriz de tipos definidos por el usuario o constantes. Si no se especifican un inicializador explícito y su constructor correspondiente para un miembro de matriz, se debe proporcionar un constructor predeterminado.

Este error del compilador está obsoleto en Visual Studio 2022.

Ejemplo

El ejemplo siguiente genera C2073. Archivo de origen C2073.cpp:

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

Aquí se muestra una corrección en el archivo de código fuente C2073b.cpp:

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