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

Initializing all doubles in a class to zero

本文关键字:双精度 初始化      更新时间:2023-10-16

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

struct foo { double a, b, c; };

另一个类具有一个 std::vector<foo> v 成员,该成员调用初始值设定项列表中的 std::vector<foo>::vector(size_t) 构造函数。

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

foo(): a(0), b(0), c(0) { }

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

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

struct foo {
    double a = 0.0;
    double b = 0.0;
    double c = 0.0;
};