我的任務是刪除一些編譯器警告。我已經能夠將問題歸結爲下面的例子,我正在抓我的頭,爲什麼它不起作用。我想我不知道如何初始化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