我有一个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
. 但不要认为你真的需要它来完成这样的教育目的(?)任务。
还想提一下,使用 MFCCString
类而不是std::string
在 MFC/ATL 应用程序中会更加一致 - 不会混合不同的字符串类型并避免不必要的转换。
您必须初始化 .cpp 文件中的字符串。