時にアレイメンバー、メンバーを初期化し、すべてが正常に動作します:C++:静的は、私は今、私はグローバルスコープでこれを行うことができます
const char* Foo::bars[3] = {"a", "b", "c"};
しかし、これは、はるかに明確かつ自己であるので、私はこれをしたいです文書化(特にEnumをインデックスとして使用する場合):
const char* Foo::bars[3];
bars[0] = "a";
bars[1] = "b";
bars[2] = "c";
これはどうしてですか?
私は関数(例えば、クラスのコンストラクタ)内でこれを行うことができますが、コンストラクタがプログラムの開始時に呼び出されず、静的配列を使用したい場合はどうすればよいですか?それは問題につながります。
なぜコンストラクタを呼び出さないのですか? – Simone
OPは、Foo :: barsを静的メンバーにし、その要素を静的に(メインが実行される前に)初期化するようにします。 –
@Emileはい、OPの最初のコード行は、 'bars'が静的宣言されている場合とまったく同じです。コンストラクターが呼び出されるので、私は全体の議論のポイントを見逃します。 – Simone