Существуют ли правила подключения include-файлов в С++?
Я в проектах делаю так:в шапке .h файла #pragma onceв .h файле только описание класса - члены, методы, иногда структурыинклюдим в .h другие .h только если этого требует описание классавсё остальное необходимое для реализации инклюдим в .cpp
почитайте впро предкомпилированные заголовки
https://en.wikipedia.org/wiki/Precompiled_header