0

std::stringプログラムのビュークラスで宣言されたオブジェクトがあります。

//puzzleView.h
public:
   std::string currentState;    // stores the current state of the blocks

実行の開始時に特定の値に初期化したい。しかし、初期化はどこに配置しますか?

4

2 に答える 2

1

あなたが「実行の始まり」であるとあなたが仮定するものに依存します。この文字列をメインビューのデータメンバーとして宣言した場合は、ビュークラスコンストラクターで、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のグローバルスコープで初期化する必要があります。しかし、あなたがそのような教育目的(?)の仕事のために本当にそれを必要とするとは思わないでください。.cpppuzzleView.cpp

CStringまた、MFC / ATLアプリケーションではなくMFCクラスを使用する方が一貫性がありstd::string、異なる文字列タイプを混在させず、不要な変換を回避できることにも言及したいと思います。

于 2012-09-01T11:22:52.913 に答える
0

.cppファイルの文字列を初期化する必要があります。

于 2012-08-31T09:48:51.300 に答える