Инженерия · Сборка и архитектура

Несколько файлов

Заголовки, раздельная компиляция и линковка

~30 мин 9 шагов

После урока ты сможешь

  • Разделять объявление (.hpp) и определение (.cpp)
  • Понимать ошибки линковщика
  • Ставить #pragma once и не нарушать ODR

Шаг 1 из 9

Почему один файл — это тупик

Пока программа занимает сотню строк, один main.cpp удобен. Но Telegram-бот из конца курса — это несколько тысяч строк: разбор команд, хранилище, HTTP-клиент, настройки. В одном файле такой код невозможно читать, и каждое мелкое изменение пересобирает всё целиком.

Настоящие проекты делят код на файлы по смыслу: каждый файл отвечает за одну вещь. Это даёт три выгоды:

  • Читаемость. Ищешь логику хранилища — открываешь storage.cpp.
  • Скорость сборки. Поменял один файл — пересобирается только он.
  • Повторное использование. Модуль работы с датами можно перенести в другой проект.

Чтобы разделить код, нужно понять одну идею: разницу между объявлением и определением.