• Классы C++. Почему программа не выполняет второй класс?

    У вас есть две странные строчки:
    // В конструкторе класса level
    cruiser cruiser(SDL_Surface *screen);
    
    // В конце функции main
    level level(screen);

    У вас level и screen - это названия классов (по сути имена типов) и названия конструкторов этих классов. И в любом случае эти строки не правильны.

    Если вы хотите создать объекты, то стоит написать так:
    cruiser cruiser_obj = cruiser(SDL_Surface *screen);
    level level_obj = level(screen);
    
    // Или проще:
    
    cruiser cruiser_obj(SDL_Surface *screen);
    level level_obj(screen);

    А если вы хотите просто вызвать конструкторы, то это можно сделать так:
    cruiser(SDL_Surface *screen);
    level(screen);
    Ответ написан