質問: "hoge!"; Hoge::Hoge(){ std::cout << scm_constStr << std::endl; // > hoge! // と表示されると思ったのですが何も表示されません // scm_constStrはブランクとして処理されます。 Pause(); } ``` ### 補足情報(FW/ツールのバージョンなど) * Windows7/64bit SP * VisualStudio2015 SP1 * C++/MFC
回答: ご回答をいただきありがとうございました。 今回の質問はサンプルを提示したことがアダとなり現象を再現することを困難にして回答者様に混乱を与えてしまいました。申し訳ございません。 実際のソリューションはMFCダイアログアプリケーションです。 サンプルの`hoge`クラスにあたるクラスは`C[プロジェクト名]App`コンストラクタ内で定義されます。 それによって`static const`として宣言した定数が初期化されるタイミングが`hoge`にあたるクラスのコンストラクタより後になっていました。 これが現象の原因だと判明しました。 てっきり`static const`として定義した定数はコンストラクタが呼び出されるときに初期化されると勝手に思っていたのですがどうやら違うようですね。