В языке C++ для предотвращения повторного включения одного и того же заголовочного файла используется механизм include guards (защита от включений) или директивы препроцессора #ifndef, #define и #endif.
Пример использования include guards:
#ifndef MY_HEADER_H
#define MY_HEADER_H
// Содержимое вашего заголовочного файла
#endif // MY_HEADER_HЕсли файл MY_HEADER_H уже был включен, то директива #ifndef MY_HEADER_H будет ложной, и содержимое файла между #ifndef и #endif будет пропущено.
Ответ: include guards (защита от включений).