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并在任何文件的全局范围内进行初始化.cpp,例如puzzleView.cpp. 但不要认为你真的需要它来完成这样的教育目的(?)任务。

还想提一下,使用 MFCCString类而不是std::string在 MFC/ATL 应用程序中会更加一致 - 不会混合不同的字符串类型并避免不必要的转换。

于 2012-09-01T11:22:52.913 回答
0

您必须初始化 .cpp 文件中的字符串。

于 2012-08-31T09:48:51.300 回答