在C++实例中,字段不会初始化为其默认值.静态字段怎么样

in C++ instance fields are not initialized to their default. How about static fields?

本文关键字:字段 默认值 怎么样 静态 初始化 实例 C++      更新时间:2023-10-16

如果我没记错的话,如果我声明一个全局字符数组,它的元素将被初始化为\0。如果我要声明静态全局或静态局部,也是如此。但是静态字段呢?

是的。 在C++术语中,字段称为"数据成员"。

C++03 标准的第 9.4.2.7 段指出"静态数据成员的初始化和销毁与非本地对象完全相同。

第 3.7.1 节 "静态存储持续时间" 指出"所有既没有动态存储持续时间也不是本地的对象都有静态存储持续时间。

第 3.6.2 节 "非本地对象的初始化" 指出"具有静态存储持续时间的对象应在任何其他初始化发生之前进行零初始化。

因此,如果您没有将数据成员显式初始化为其他内容,它将保留其零初始化值。

在初始化方面,静态数据成员的处理方式与全局变量相同。