Вступить в клуб →
сложнаявопросООП, исключения и дизайн классов

После смены порядка файлов в CMake сервис падает ещё до main

// logger.cpp
Logger globalLogger("/var/log/app.log");

// plugins.cpp
PluginRegistry registry;   // конструктор вызывает globalLogger.info("registry init")

После того как в add_executable поменяли порядок исходников, процесс падает до входа в main внутри Logger::info. Код не менялся. Что происходит?

  • Порядок инициализации глобалов разных .cpp не задан
  • Глобальные объекты создаются после входа в main
  • CMake меняет порядок вызова конструкторов в классе
  • Logger нельзя использовать из другого .cpp без extern

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела