Ich arbeite an einem Spiel und habe eine interessante Frage. Ich habe einige spielweite konstante Werte, die ich in einer Datei implementieren möchte. Im Moment habe ich so etwas wie diese:C++ beste Möglichkeit, Dateiübergreifende Konstanten zu definieren
constants.cpp
extern const int BEGINNING_HEALTH = 10;
extern const int BEGINNING_MANA = 5;
constants.hpp
extern const int BEGINNING_HEALTH;
extern const int BEGINNING_MANA;
Und dann Dateien nur # include "constants.hpp" Dies funktioniert großartig, bis Ich musste eine der Konstanten als Template-Parameter verwenden, da extern verknüpfte Konstanten keine gültigen Template-Parameter sind. Also meine Frage ist, was ist der beste Weg, um diese Konstanten zu implementieren? Ich befürchte, dass die Konstanten einfach in eine Header-Datei geschrieben werden müssen, damit sie in jeder Übersetzungseinheit definiert werden. Und ich möchte keine Makros verwenden.
Danke
Ich vermute einen Fehler beim Kopieren/Einfügen in letzten BEGINNING_NAME []. Möchtest du es als BEGINNING_NAME schreiben? –
Sie sind richtig, behoben. Vielen Dank. – Tom
Sie benötigen "statisch", sonst erhalten Sie keine interne Verknüpfung oder idealerweise das Äquivalent eines "#define" mit den Werten inline. –