我有一个std::string
对象已在程序的视图类中声明。
//puzzleView.h
public:
std::string currentState; // stores the current state of the blocks
我想在执行开始时将其初始化为特定值。但是我在哪里进行初始化?
答案 0 :(得分: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
。但是,不要认为你真的需要这样的教育目的(?)任务。
还要提一下,在MFC / ATL应用程序中使用MFC CString
类而不是std::string
会更加一致 - 不混合使用不同的字符串类型并避免不必要的转换。
答案 1 :(得分:0)
你必须初始化.cpp文件中的字符串。