Перейти к содержанию

Организация заголовков и исходников, компиляция

Начало урока

Организация заголовков и исходников, компиляция

Как программа на C++ распределяется по файлам и как компилятор превращает её в исполняемый файл

Главная идея: реальный проект на C++ не является одним огромным файлом. Вы разбиваете его на заголовки, которые объявляют, что существует, и исходные файлы, которые определяют, как это работает. Затем система сборки компилирует каждый исходный файл по отдельности и компонует части в одну программу. Правильная структура отличает проект, который собирается за секунды, от того, что сопротивляется на каждом шагу.
К концу вы сможете:
  • отличать объявление от определения и формулировать правило одного определения,
  • разбивать компонент на заголовок .h и исходник .cpp,
  • прослеживать сборку через препроцессинг, компиляцию и компоновку,
  • защищать заголовок стражем включения или #pragma once,
  • решать, что помещать в заголовок, а что в исходный файл.

1. Зачем разбивать код по файлам?

Представьте большую кулинарную книгу. Оглавление перечисляет каждое блюдо по названию и странице: оно говорит, что существует, не печатая рецепт заново. Страницы с рецептами содержат сами шаги. Два повара на разных кухнях могут читать одно оглавление, согласиться, какие блюда существуют, и каждый готовит свою часть.

C++ работает так же. Заголовок (.h или .hpp) — это оглавление: он объявляет имена, типы и форму функций и классов. Исходный файл (.cpp) — это страница рецепта: он содержит рабочий код. Каждый .cpp, желающий использовать функцию, просто подключает заголовок через #include, доверяет, что определение существует где-то, и занимается своей работой.

Это разбиение даёт три вещи: быстрее сборка (измените один .cpp, и перекомпилируется только он), повторное использование (много файлов делят один заголовок) и чёткие интерфейсы (заголовок — публичный контракт, исходник — приватная реализация).

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя