Sbagliato! le inizializzazioni non ci devono stare nella classe.
class Itinerario
{
public:
string nome;
vector<Luogo> luoghi;
};
Ripeto il fatto che la classe è un tipo non è un oggetto, descrive le caratteristiche dell' oggetto che poi verrà istanziato.
La 'Mucca' è una classe, è l' idea di muccosità che abbiamo in testa. 'Carolina' invece è una mucca specifica, è una istanza, è proprio quella mucca li con le macchie bianche e una stella in fronte.
Per cui la classe Itinerario prevede un nome ma non ha nessun nome specifico, prevede un array di luogi ma non contiene nessun luogo specifico, saranno le istanze cha avranno un nome e dei luoghi con coordinate specifiche.
Ora puoi creare degli itinerari (cosa che poi dovrai fare nella classe di test), per ora scrivilo nel main, ad esempio:
Itinerario* itinerario1 = new Itinerario();
itinerario1->nome = "Primo percorso";
itinerario1->luoghi.push_back(Luogo(100, 200));
itinerario1->luoghi.push_back(Luogo(230, 500));
itinerario1->luoghi.push_back(Luogo(20, 300));
Uso l' allocazione dinamica (il new), per ora non soffermiamoci su quest' aspetto, ne parliamo dopo (ti basti sapere per ora che così è più efficiente e si evitano problemi di copia dell' oggetto quando lo metterai in un array).
Prova a compilare e poi vediamo di migliorarla.