私はゲームに取り組んでおり、面白い質問があります。私は1つのファイルに実装したいいくつかのゲーム全体の定数値を持っています。今、私はこのようなものがあります:クロスファイル定数を定義するにはC++の最良の方法
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;
をそしてちょうどまで、これは素晴らしい仕事をしていた "constants.hppを" #includeファイル外部リンク定数は有効なテンプレートパラメータではないので、定数の1つをテンプレートパラメータとして使用する必要がありました。 私の質問は、これらの定数を実装する最良の方法は何ですか?ヘッダーファイルに定数を入れるだけで、それぞれの翻訳単位で定義されることになるのではないかと思います。私はマクロを使いたくありません。
ありがとうございました
最後のBEGINNING_NAME [] 1にコピー/ペーストのバグがあると思われます。 BEGINNING_NAMEと書いてみましたか? –
あなたは正しい、修正されています。ありがとう。 – Tom
"静的"が必要です。そうでなければ、内部リンケージや、理想的には "#define"に相当する値がインライン化されます。 –