Zostałem poproszony o usunięcie ostrzeżenia o niektórych kompilatorach. Byłem w stanie zagotować problem do następującego przykładu, który podrapuję się, dlaczego to nie zadziała. Chyba nie wiem jak zainicjować rzeczy w C++. Każda pomoc będzie doceniona.Problemy z inicjowaniem tablic w strukturach w tablicach w strukturach
używam g ++ tak: g ++ init_arr.cpp
Oto kod. Chcę zainicjować wszystkich ludzi na wszystkich tabel w Aisle pizzy:
// 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;
}
Myślałam powyżej będzie działać, ale pojawia się następujący błąd:
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 do tworzenia minimalny przypadek testowy. –
Po prostu przegapiłeś wiele aparatów ortodontycznych. Jako pomoc w zrozumieniu rozważmy przypadek, w którym przejście miało więcej członków niż ais. Gdzie chcesz umieścić tych członków? – Tobias
Dzięki za odpowiedź. – Bitdiot