编译器错误 C2073

“identifier”:部分初始化数组的元素必须有默认构造函数

注解

为用户定义的类型或常量的数组指定的初始值设定项过少。 如果没有为数组成员指定显式初始值设定项及其相应的构造函数,则必须提供默认构造函数。

此编译器错误在 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