Source files
SF.9
Избегайте циклических зависимостей между исходными файлами
Причина
Циклы усложняют понимание и замедляют компиляцию. Они также усложняют переход к использованию языковых модулей (когда они станут доступны).
Примечание
Устраняйте циклы; не просто разрывайте их с помощью защитных макросов #include.
Пример (плохой)
// file1.h:
#include "file2.h"
// file2.h:
#include "file3.h"
// file3.h:
#include "file1.h"
Контроль
Отмечайте все циклы.