数组的初始化程序太多错误

Too many initializers for Array error

本文关键字:太多 错误 程序 初始化 数组      更新时间:2023-10-16

我实现了以下结构:

struct Point {
    int x,y;
};
struct Array {
    Point elem[3];
};

你能解释一下我为什么会出错吗:

错误:"Array"的初始化程序太多

当我使用以下结构时?:

Array points2 {{1,2},{3,4},{5,6}};

您需要更多的大括号,因为您正在初始化类中数组中的对象:

Array points2 { { {1,2},{3,4},{5,6}}};
              ^ ^ ^
              | | |
              | | array element
              | array
              class

您实际上还需要一组大括号,如下所示:

Array points2 {{{1,2},{3,4},{5,6}}};

工作示例

请参阅这篇文章,以进一步解释何时需要这些额外的大括号。它与容器是否为聚合有关。