Судя по скриншотам, проблема в том, что ты пытаешься использовать переменные Game_Menu и GM до их объявления. Компилятор C++ читает код сверху вниз, поэтому он должен "знать" о существовании переменной, прежде чем ты начнёшь её использовать.
Вот что тебе нужно сделать:
Объяви переменные Game_Menu и GM перед тем, как использовать их в функции RasstavlenieKorablei. Объявление должно соответствовать типу классов, которые ты определил (class Game_Menu и class firing). Например:
Game_Menu Game_Menu; // Создаём объект класса Game_Menu
firing GM; // Создаём объект класса firing
for (int i = 1; i < kol; i++){
// ... твой код ...
GM.EnemyFerryPole(ABC, poleB, sizeY, sizeY);
// ... твой код ...
}
Убедись, что классы Game_Menu и firing видны в функции RasstavlenieKorablei. Если эти классы определены в другом файле, тебе нужно подключить этот файл с помощью директивы #include. Если классы определены в том же файле, но после функции RasstavlenieKorablei, ты можешь добавить forward declaration:
class Game_Menu; // Forward declaration класса Game_Menu
class firing; // Forward declaration класса firing
void RasstavlenieKorablei(int kol, string poleC[10], string pole[10][10], char ABC[10], int sizeX, int sizeY){
// ... твой код ...
}
Что означают ошибки?
C2065: "имя_переменной": необъявленный идентификатор - Эта ошибка говорит о том, что компилятор не знает о существовании переменной с таким именем.
C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "имя_переменной" - Эта ошибка, скорее всего, возникает из-за того, что компилятор пытается интерпретировать GM как что-то другое (например, тип данных), так как он не знает, что это переменная.
Как сделать, чтобы классы "сообщались" друг с другом?
Классы могут взаимодействовать друг с другом через:
public методы: определяй методы в классах, которые будут доступны из других частей программы. Например, в классе Game_Menu может быть метод get_player_input(), который будет вызывать класс firing для обработки ввода пользователя.
передачу объектов в качестве параметров: ты можешь передавать объекты одного класса в методы другого класса.
наследование: один класс может наследовать свойства и методы другого класса.