私はしばしば、プログラムのためのグローバルなパラメータセットを用意したいと思っています。私は、「静的」、これは、AOとBOを作るために含まれている場合、しかし、簡潔かつ簡単にアクセスできる、一緒に他の人が使っている別のファイルのC++ネームスペース
namespace Params {
static int WindowHeight = 600;
//...etc.
};
のようなものを、これらのパラメータを維持したいと思いますこれらの変数は、それぞれの.oファイルにローカルではなく、維持可能それらは共有され、「静的」は複数の定義につながります。 別のオプションは、
class Params {
public:
static int WindowHeight;
//...etc.
}
のような静的なクラスを作成することです。しかし、あなたは別に他の場所でパラメータを初期化する必要があります。
int型のparams :: WindowHeight = 600;
これは私が実際に避けたいものです。 私も
namespace Params {
static int WindowHeight
#ifdef __MUST_INIT_PARAMS
= 600
#endif
;
};
限り、各エントリは一つの場所に保つことができるよう(ちなみに、私のために動作しませんでした)、次のようなものを受け入れるだろう。
アイデア?あらゆる種類の助けが素晴らしいだろう! ありがとう!
静的クラスメンバーをインラインで初期化することができます。 (例えば、static int WindowHeight = 600;) – Bukes
私のgccが文句を言うので、一部のコンパイラでのみ正しいと思います。 'エラー:ISO C++は非const静的メンバー 'var'のクラス内初期化を禁じています。それはconstでなければならないと思うけど、それは私にとってはうまくいかないでしょう。 – StokedOver9k
@ StokedOver9k - 彼は "整数型である静的constクラスメンバー"と言っていました。 –