La sintassi dell'initialization list si può usare per inizializzare oggetti "interi", non sotto-oggetti (come nel caso dei singoli elementi degli array). La sintassi corretta sarebbe:
codice:
Campionato::Campionato() :
squadre{
"Italia",
"Germania",
"Francia",
"Belgio",
"Brasile",
"Argentina",
"Uruguay",
"USA",
"Cile",
"Spagna",
"Portogallo",
"Olanda",
"Inghilterra",
"Messico",
"Colombia",
"Ghana"},
gironi{
Girone(squadre[0],squadre[8],squadre[6],squadre[7], "A"),
Girone(squadre[1],squadre[2],squadre[15],squadre[13], "B"),
Girone(squadre[3],squadre[4],squadre[10],squadre[12], "C"),
Girone(squadre[5],squadre[9],squadre[11],squadre[14], "D")
}
valida tuttavia solo da C++11 (in C++98 non esiste modo per inizializzare un array tramite initialization list).