C++ 您使用什么方法初始化成员变量?

C++ 您使用什么方法初始化成员变量?,c++,C++,假设我有一个类Foo,其成员变量是一个std::vector of float,bar。然后我创建了一个名为Foo的Foo实例。比方说,在程序运行之前,我不知道bar的长度,但是在调用foo的构造函数时,我知道它的长度应该是x 我可以想出三种方法来初始化条形图的长度,我只是想知道三种方法中最常用的是哪一种。我把它们按我认为最好的做法排列,但我更好奇人们在实践中实际使用的方法。有时,我使用的方法使代码更清晰易懂,而不一定遵循最佳实践 bar是一个私有成员,我在foo的构造函数中调整它的大小,例如f

假设我有一个类Foo,其成员变量是一个std::vector of float,bar。然后我创建了一个名为Foo的Foo实例。比方说,在程序运行之前,我不知道bar的长度,但是在调用foo的构造函数时,我知道它的长度应该是x

我可以想出三种方法来初始化条形图的长度,我只是想知道三种方法中最常用的是哪一种。我把它们按我认为最好的做法排列,但我更好奇人们在实践中实际使用的方法。有时,我使用的方法使代码更清晰易懂,而不一定遵循最佳实践

bar是一个私有成员,我在foo的构造函数中调整它的大小,例如foo foox{bar.resizex}

bar是一个私有成员,我称之为foo.ResizeBarx,它在创建foo之后在内部调整bar的大小

bar是一个公共成员,在创建foo之后,我将其称为foo.bar.resizex

或者,在代码中:

一,

二,

三,


最佳方法不在您发布的选项列表中。最好的方法是使用初始化条


最佳方法不在您发布的选项列表中。最好的方法是使用初始化条


这三种方法的问题在于,不必要地为向量调用默认初始值设定项,然后修改已经初始化的向量以满足需要

您应该使用初始值设定项列表调用正确的初始值设定项:

Foo::Foo(std::size_t x) : bar(x, 0) { }

这三种方法的问题在于,不必要地为向量调用默认初始值设定项,然后修改已经初始化的向量以满足需要

您应该使用初始值设定项列表调用正确的初始值设定项:

Foo::Foo(std::size_t x) : bar(x, 0) { }

与其描述你的代码,为什么你不能展示它呢?顺便说一句,你知道吗?如果没有,那么你可能想读一读关于它们的文章。这里没有最佳实践。您可以根据需要选择使用哪种方法。既然类名Foo在描述这个类的用途时没有用处,这里的任何建议都只是猜测;在初始值设定项列表中?与其描述代码,不如直接显示它?顺便说一下,你知道吗?如果没有,那么你可能想读一读关于它们的文章。这里没有最佳实践。您可以根据需要选择使用哪种方法。既然类名Foo在描述这个类的用途时没有用处,这里的任何建议都只是猜测;在初始值设定项列表中?
class Foo
{
public:
    std::vector<float> bar;
    Foo()
    {
    };
};

int main()
{
    Foo foo;
    foo.bar.resize(100);
    return 0;
}
Foo::Foo(int x) : bar(x) {}
Foo::Foo(std::size_t x) : bar(x, 0) { }