如何在 C++ 类的私有部分中分配变量?
我尝试按照以下方式进行:
private:
std::string foo;
foo = "randomValue";
但这会导致错误消息。
如果我立即声明变量并为其赋值,如下所示:
private:
std::string foo = "randomValue";
它有效。
为什么第二种方法可以,而第一种方法不行?
以防万一评论没有说清楚(我发现它们有点支离破碎):
std::string foo = "randomValue";
是(正如你自己所说)初始化。当对象被构造时它会初始化
foo
。它从 C++11 开始工作,在我看来,这是正确的方法(因为你可以在同一个地方初始化所有成员变量,所以如果你随后添加一个,你就不会忘记)。
鉴于:
std::string foo;
foo = "randomValue";
如果它是合法的,将是赋值 - 即它为已经存在的变量赋值(并且只能在函数体中执行此操作,包括构造函数)。