Condividi tramite


Errore del compilatore C2073

'identifier': gli elementi della matrice parzialmente inizializzata devono avere un costruttore predefinito

Osservazioni:

Sono stati specificati troppi inizializzatori per una matrice di tipi o costanti definiti dall'utente. Se non viene specificato un inizializzatore esplicito e il relativo costruttore corrispondente per un membro di matrice, è necessario specificare un costruttore predefinito.

Questo errore del compilatore è obsoleto in Visual Studio 2022.

Esempio

L'esempio seguente genera l'errore C2073. C2073.cppFile di origine :

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

Una correzione è illustrata qui nel file C2073b.cppdi origine :

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