我的任务是删除一些编译器警告。我已经能够将问题归结为下面的例子,我正在抓我的头,为什么它不起作用。我想我不知道如何初始化C++中的东西。任何帮助,将不胜感激。初始化数组中结构中数组的结构出现问题
我用G ++像这样: G ++ init_arr.cpp
下面的代码。我想所有的人初始化在过道比萨饼中的所有表:
// init_arr.cpp
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
struct Person {
int id;
string name;
double money;
};
struct Table {
Person tab[4];
};
struct Aisle {
Table ais[3];
};
int main() {
cout << "main function()" << endl;
Aisle pizza =
{
{ // Table 0
{ 0, "Tom", 100.0 },
{ 1, "Mary", 101.0 },
{ 2, "Jane", 103.0 },
{ 3, "Joe", 104.0 }
},
{ // Table 1
{ 0, "Tom", 100.0 },
{ 1, "Mary", 101.0 },
{ 2, "Jane", 103.0 },
{ 3, "Joe", 104.0 }
},
{ // Table 2
{ 0, "Tom", 100.0 },
{ 1, "Mary", 101.0 },
{ 2, "Jane", 103.0 },
{ 3, "Joe", 104.0 }
}
};
return 0;
}
我认为上述的工作,但我得到以下错误:
g++ init_arr.cpp -std=gnu++0x
init_arr.cpp: In function ‘int main()’:
init_arr.cpp:49: error: too many initializers for ‘Table [3]’
init_arr.cpp:49: error: too many initializers for ‘Aisle’
+1创建一个最小的测试用例。 –
你刚刚错过了很多大括号。作为理解的帮助,考虑Aisle拥有更多成员而不是ais的情况。你会把这些成员放在哪里? – Tobias
感谢您的回答。 – Bitdiot