2014-10-29 130 views
2

我已经实现以下结构:太多初始化数组错误

struct Point { 
    int x,y; 
}; 

struct Array { 
    Point elem[3]; 
}; 

你能解释一下为什么我得到一个错误:

error: too many initializers for 'Array'

当我用下面的结构?:

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

回答

8

你需要更多的支撑,因为你是一个阵列内的类中初始化对象:

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

你实际上需要一套更多的大括号,例如:

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

Working example

用于当需要这些额外的括号进一步解释见this post。这与容器是否是聚合有关。