前提・実現したいこと
VC++でのstatic const
で宣言した定数の内容が定義され参照できるようになるタイミングを知りたい。
発生している問題・エラーメッセージ
ヘッダファイル内でstatic const std::string
型として宣言して、ソースコードの先頭部分で定義したクラス定数がコンストラクタ内で初期化されていない。
該当のソースコード
C++
1//header 2class Hoge{ 3 Hoge(); 4 ~Hoge(); 5private: 6 static const std::string scm_constStr; 7};
C++
1#include "Hoge.h" 2const std::string Hoge::scm_constStr = "hoge!"; 3 4Hoge::Hoge(){ 5 std::cout << scm_constStr << std::endl; 6 // > hoge! 7 // と表示されると思ったのですが何も表示されません 8 // scm_constStrはブランクとして処理されます。 9 Pause(); 10}
補足情報(FW/ツールのバージョンなど)
- Windows7/64bit SP
- VisualStudio2015 SP1
- C++/MFC
回答3件
あなたの回答
tips
プレビュー