Разбираемся что за хедеры и как их использовать, а как не надо. (сорри, но дзен не даёт вставлять удобно код) Header-файлы (заголовочные файлы) содержат объявления (но не определения) функций, классов и переменных, которые могут использоваться в нескольких .cpp файлах. Они помогают разделять интерфейс и реализацию, улучшая читаемость и повторное использование кода. ``` #ifndef HEADER_H // Защита от повторного включения #define HEADER_H void printMessage(); // Объявление функции #endif // HEADER_H ``` ПРИМЕР ПЛОХОГО ХЕДЕРА ``` #ifndef HEADER_H #define HEADER_H #include <iostream> // Плохо: тянем ненужный заголовочный файл std::string globalString = "Hello"; // Плохо: определение переменной void printMessage() { // Плохо: определение функции std::cout << globalString << std::endl; } #endif // HEADER_H ``` Это вызовет ошибку линковки при включении header.h в нескольких .cpp файлах. Лучший вариант: Правильный header.h (только объявления) ``` #ifndef HEADER_H #define HEADER_H #in