Hallo Leute,
ich versuche momentan ein erstes kleines Spiel zu programmieren. Ich mache das anhand der Vorgehensweise wie in Kapitel 7 des Buches, in dem Breaknoid entwickelt wird, wandle das ganze jedoch ein wenig ab. Programmiere also nicht 1:1 nach, sondern mach mir meine eigenen Gedanken und schau dann, wie es im Buch gemacht wird und vergleiche. Das läuft bisher auch ganz gut, jedoch bin ich da auf etwas gestoßen womit ich leider bisher noch nicht konfrontiert wurde.
Also:
Im Buch wird ja die Hauptklasse CBreakanoid in der dafür vorgesehenen Header-Datei definiert. In dieser Header-Datei wird auch die tribase.h inkludiert. Weiterhin werden hier die jeweiligen Header-Dateien der einzelnen Spielzustände inkludiert z.B. "mainMenu.h". So weit, so gut. Jetzt werden ja in der Klassen-Definition vom MainMenu ja auch Variablen, etc. verwendet, welche in der TriBase-Engine definiert sind. So wird z.B. in jeder Klasse eines Spielzustandes die Methode
|
C-/C++-Quelltext
|
1
|
tbResult Load()
|
definiert.
So, jetzt ist die Tribase.h ja nicht in der Header-Datei des Hauptmenus (also MainMenu.h) inkludiert, demzufolge auch nicht in der zugehörigen Quelldatei MainMenu.cpp. Wenn ich nun jedoch innerhalb dieser Klasse z.B. eine Methode deklariere, welche den Rückgabetyp tbResult besitzen sollte, kennt der Compiler diese ja nicht. Demzufolge erhalte ich die Fehlermeldung, dass der Rückgabetyp unbekannt ist und als Standard-Rückgabewert ein Integer angenommen wird. Das ist natürlich nicht Sinn das Sache!
Prinzipiell würde ich nach meinem Kenntnisstand denken, dass ich in quasi jede Header-Datei auch die Tribase.h inkludieren müsste, was ja weder besonders toll aussieht noch im mitgelieferten Quellcode so angewandt wird. Wie ist das Problem zu lösen? Gibt es eine Vorgehensweise, dass z.B. in diesem Fall die Tribase.h generell überall inkludiert wird? Oder wie löst man so etwas?
Bin durch Google-Recherche und Nachschlagen in meinem C++-Buch leider nicht auf des Rätsels Lösung gestoßen!
Danke!