将类中的所有双精度初始化为零
Initializing all doubles in a class to zero
我有一个只有双成员变量的结构,例如
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;
};
相关文章:
- 初始化 std::vector 替换为单大括号而不是双大括号
- 为什么浮点数的矢量化比双精度更有效?
- 在C++中序列化浮点数/双精度,编译为 WebAssembly
- 为什么编译器接受具有长双精度文本的浮点数的初始化?
- C++ 具有双精度和长双精度的显式模板实例化
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 如何随机化双精度/浮点数据类型? C++
- 标准::p空气<矢量、双精度的初始值设定项列表<int>>
- 使用整数初始化列表初始化长双精度的向量
- 整数和双精度变量的初始化
- 双支撑初始化
- 将类中的所有双精度初始化为零
- 定义最大双精度时"无法在初始化时将'double (*)() noexcept'转换为'double'"
- 矢量和双克初始化或push_back会导致 SIGABRT 错误
- C++ 为什么我可以初始化静态常量字符,但不能初始化类定义中的静态常量双精度
- 初始化时无法将长整型*转换为双精度*
- 通过指针初始化常量矩阵<双精度,0,80>(来自 Dlib)
- 使用分数正确初始化双精度类型
- 使用双精度的 MSVC 大括号初始化似乎违反了该标准
- 可以用双引号初始化对象吗?