C++ 在C++;实例字段未初始化为其默认值。静态场呢?

C++ 在C++;实例字段未初始化为其默认值。静态场呢?,c++,static,field,C++,Static,Field,如果我没有弄错,如果我要声明一个全局字符数组,它的元素将被初始化为\0。如果我要声明一个静态全局或静态局部,也是一样的。但是静态场呢?是的。在C++术语中,字段被称为“数据成员”。 C++03标准第9.4.2.7段规定“静态数据成员的初始化和销毁与非本地对象完全相同。” 第3.7.1节“静态存储持续时间”规定“所有既没有动态存储持续时间也没有本地存储持续时间的对象都有静态存储持续时间。” 第3.6.2节“非本地对象的初始化”规定“具有静态存储持续时间的对象应在进行任何其他初始化之前进行零初始化。

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

是的。在C++术语中,字段被称为“数据成员”。 C++03标准第9.4.2.7段规定“静态数据成员的初始化和销毁与非本地对象完全相同。”

第3.7.1节“静态存储持续时间”规定“所有既没有动态存储持续时间也没有本地存储持续时间的对象都有静态存储持续时间。”

第3.6.2节“非本地对象的初始化”规定“具有静态存储持续时间的对象应在进行任何其他初始化之前进行零初始化。”


因此,如果您没有显式地将数据成员初始化为其他对象,它将保持其零初始化值。

静态数据成员在初始化方面被视为全局变量