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