c++ - 在类成员变量 std::array 中使用 {} 会导致初始化数组元素吗?
问题描述
我有一个带有 std::array 成员变量的类 X:
class X
{
public:
//some code here
private:
std::size_t var1_;
std::array<std::uint8_t, 100> var2_; //this is the class member variable
}
我想确保 var1_ 和 var2_ 始终被初始化,即使我没有在构造函数中显式初始化它们。如果我做这样的事情:
class X
{
public:
//some code here
private:
std::size_t var1_{0};
std::array<std::uint8_t, 100> var2_{}; //this is the class member variable
}
它会将 var1_ 初始化为零。对 var2_ 使用 {} 是否保证所有 uint8_t 数组元素都将初始化为零?此外,如果使用 {} 确保所有数组元素都初始化为零,有没有办法在定义 var2_ 的行将它们初始化为 0 以外的某个值?(即,没有在构造函数中明确地这样做)。我正在使用 C++11。谢谢
解决方案
推荐阅读
- reactjs - 从 thunk 返回承诺
- python - 使用二进制编码:如何从编码值中取回原始值?
- mysql - ERROR 1045 (28000): Access denied for user 'zijieyu'@'localhost' (使用密码: NO)
- javascript - 如何在使用角度拖放时防止默认图像下载
- java - 如何在切换条件下使用百分比来表示基于健康的玩家状态?
- r - 如何在 R studio 中加载一个大的(3.96 gb).tsv 文件
- javascript - Javascript获取css高度适当性
- delphi - 如何在运行时分配 TFDMemtable AfterPost 和 AfterDelete 事件?
- entity-framework - 实体框架嵌套连接
- python - 如何在python中制作分隔符