将类中的所有双精度初始化为零

SU3*_*SU3 0 c++ constructor initialization c++14

我有一个只有双成员变量的结构,例如

struct foo { double a, b, c; };
Run Code Online (Sandbox Code Playgroud)

另一个类有一个std::vector<foo> v成员,它std::vector<foo>::vector(size_t)在初始化列表中调用构造函数.

我想做的是编写一个默认构造函数,foo以便将其中的所有双精度初始化为零,而不必编写

foo(): a(0), b(0), c(0) { }
Run Code Online (Sandbox Code Playgroud)

我一直需要添加更多变量foo,但将它们作为容器的元素是没有意义的std::array<double>,因为它们都有不同的用途.

Dei*_*Dei 7

由于您已将其标记为C++ 14,因此您可以初始化此类成员变量,而无需在构造函数中初始化它们:

struct foo {
    double a = 0.0;
    double b = 0.0;
    double c = 0.0;
};
Run Code Online (Sandbox Code Playgroud)