źle użyty operator new.
To dziwne, bo patrząc na kod jaki tworzysz, to bardzo dobrze powinieneś wiedzieć jak korzystać z new.
Zasada jest następująca:
typ * nazwa_wskaźnika = new typ [ile_elementow];
Jeżeli nie chcesz tablicy, to wtedy "[ile_elementow]" pomijasz. Ważne przy tym jest aby:
po lewej stronie znaku "=" był wskaźnik,
typ wskaźnika był taki sam jak typ stojący przy operatorze new.
W szóstej linijce istnieje u Ciebie taki byt:
panstwo2 = new COUNTRIESd panstwo2.cities[ile];
Korzystamy z definicji, które napisałem powyżej i aby to działało muszą być spełnione warunki:
panstwo2 musi być wskaźnikiem typu COUNTRIESd
panstwo2.cities[ile] <--- tutaj powinna być po prostu liczba w kwadratowym nawiasie tak jak wyżej pokazałem. Bez żadnych udziwnień.
Jeżeli moje wyjaśnienia nie rozwiążą Twojego problemu, to pisz. Będziemy działać :-)