Da ich auch dieses include-Geraffle als eines der furchtbarsten Dinge in C++ finde, kann ich deine Frustration schon verstehen. Allerdings ist es sehr wichtig, mit den includes einige Spielregeln einzuhalten. Vielleicht kann man das einfach mal zusammenfassen und du prüft pro Datei, ob das hinhaut. Dann wird sich der Fehler schon finden
1) Jede Klasse wird in einer Header-Datei deklariert (class Blubb ....)
2) Die Methoden/statische Member werden in einer separaten cpp-Datei implementiert. diese inkludiert die Header aus 1.
3) Solllte eine Klasse in der Header-Datei andere Klassen aus deinem Projekt brauchen, so ist es ratsam, eine Forward-Deklaration zu machen.
4) Alle in der Header-Datei mit Forward deklarierten Klasse sollten in der Dazugehörigen cpp-Datei der Klasse inkludiert werden.
5) Jede Header-Datei mit #pragma once absichern, das verhindert mehrfachincludes in "geschachtelten" Headerincludes.
Wenn ich mir so deine letzten Ausgaben anschaue, dann sehe ich schonmal, dass du Regel 3 brichst
. Dadurch können halt zyklische includes entstehen, und das mag der Compiler gar nicht!
Für alle c++-Fetischisten unter uns: Ja ich weiß, das ist eventuell nicht immer der richtige Weg, aber somit fährt man ziemlich gut denke ich.