在C++中为类的私有部分中的变量赋值

问题描述 投票:0回答:1

如何在 C++ 类的私有部分中分配变量?

我尝试按照以下方式进行:

private:
    std::string foo;
    foo = "randomValue";

但这会导致错误消息。

如果我立即声明变量并为其赋值,如下所示:

private:
    std::string foo = "randomValue";

它有效。

为什么第二种方法可以,而第一种方法不行?

c++ class private
1个回答
0
投票

以防万一评论没有说清楚(我发现它们有点支离破碎):

std::string foo = "randomValue";

是(正如你自己所说)初始化。当对象被构造时它会初始化

foo
。它从 C++11 开始工作,在我看来,这是正确的方法(因为你可以在同一个地方初始化所有成员变量,所以如果你随后添加一个,你就不会忘记)。

鉴于:

std::string foo;
foo = "randomValue";

如果它是合法的,将是赋值 - 即它为已经存在的变量赋值(并且只能在函数体中执行此操作,包括构造函数)。

© www.soinside.com 2019 - 2024. All rights reserved.