Problem mit vielen Headern
-
Also ich bein gerade dabei ein etwas größeres Projekt zu schreiben. Nun habe ich aber ein Problem mit den vielen Headern.
Ich habe Präprozessordirektiven benutzt damit der Code nicht mehrfach eingebunden wird.#ifndef _Header1_ #define _Header1_ //Irgendwelche Deklarationen #endifUnd weil es viele Header sind, habe ich einen Header erstellt der alle einbindet
#ifndef _AlleHeaders_ #define _AlleHeaders_ //Linkoptionen... #include<...> //Stasndartbibliotheken (werden auch benötigt) #include"..." //Alle von mir erstellten Header mit den Enumerationen, Deklarationen, etc #endifDarum wurden die Header erweitert
#include"AllHeader.h" #ifndef...Jetzt habe Ich aber folgendes Problem(chen): Die Funktionsdefinitionen benötigen die Deklerationen (also alle Header). Also in die cpp #include"AllHeaders.h"
Jetzt kommt es aber dazu, dass mit AllHeaders das Makro _AllHeaders_ definiert wird -> erster meiner Header (z.b. der mit den Enums) wird eingbunden -> andere Header sollen eingebunden werden aber das Makro _AllHeaders_ ist ja schon definiert, also werden die anderen Header nicht eingebunden -> Compilerfehler: die Deklerationen fehlen.Was soll ich tun???
-
Weniger zentralisieren - die einzelnen Header sollten nur die Dateien einbinden, die sie wirklich benötigen, anstatt pauschal alle anderen Header zu verwenden. (wenn du trotzdem noch Probleme mit zyklischen Abhängigkeiten hast, brauchst du Forward-Deklarationen)
-
Danke, klappt!
