C++ 您使用什么方法初始化成员变量?
假设我有一个类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 或者,在代码中: 一, 二, 三,C++ 您使用什么方法初始化成员变量?,c++,C++,假设我有一个类Foo,其成员变量是一个std::vector of float,bar。然后我创建了一个名为Foo的Foo实例。比方说,在程序运行之前,我不知道bar的长度,但是在调用foo的构造函数时,我知道它的长度应该是x 我可以想出三种方法来初始化条形图的长度,我只是想知道三种方法中最常用的是哪一种。我把它们按我认为最好的做法排列,但我更好奇人们在实践中实际使用的方法。有时,我使用的方法使代码更清晰易懂,而不一定遵循最佳实践 bar是一个私有成员,我在foo的构造函数中调整它的大小,例如f
最佳方法不在您发布的选项列表中。最好的方法是使用初始化条
最佳方法不在您发布的选项列表中。最好的方法是使用初始化条
这三种方法的问题在于,不必要地为向量调用默认初始值设定项,然后修改已经初始化的向量以满足需要 您应该使用初始值设定项列表调用正确的初始值设定项:
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) { }