Cpp Coding Standards/DESIGN/CyclDep
From Apache OpenOffice Wiki
Avoid unnecessary dependencies (because they increase coupling, and thus (re)compile time). Cyclic dependencies are even worse: they glue two (or more) seemingly unrelated units together, into something larger, whose parts cannot be used (or tested, or deployed) in isolation.
Use the Dependency Inversion Principle to break cyclic dependencies.