std::string
プログラムのビュークラスで宣言されたオブジェクトがあります。
//puzzleView.h
public:
std::string currentState; // stores the current state of the blocks
実行の開始時に特定の値に初期化したい。しかし、初期化はどこに配置しますか?
std::string
プログラムのビュークラスで宣言されたオブジェクトがあります。
//puzzleView.h
public:
std::string currentState; // stores the current state of the blocks
実行の開始時に特定の値に初期化したい。しかし、初期化はどこに配置しますか?
あなたが「実行の始まり」であるとあなたが仮定するものに依存します。この文字列をメインビューのデータメンバーとして宣言した場合は、ビュークラスコンストラクターで、CPuzzleView::CPuzzleView()
つまり関数本体で初期化する必要があります(ビュークラス名はCPuzzleView
)です。これは最も一般的なケースです。
// #1 Using initialization list
CPuzzleView::CPuzzleView(): currentState("No state")
{
}
// #2 Using assignment in ctor body. Also valid, but case #1 is preferable
CPuzzleView::CPuzzleView()
{
currentState = "No state";
}
main()
関数を開始する前に初期化する必要がある場合は、それを宣言し、任意のファイルstatic
のグローバルスコープで初期化する必要があります。しかし、あなたがそのような教育目的(?)の仕事のために本当にそれを必要とするとは思わないでください。.cpp
puzzleView.cpp
CString
また、MFC / ATLアプリケーションではなくMFCクラスを使用する方が一貫性がありstd::string
、異なる文字列タイプを混在させず、不要な変換を回避できることにも言及したいと思います。
.cppファイルの文字列を初期化する必要があります。