在C ++实例字段中未初始化为默认值。静态字段怎么样?

时间:2012-12-01 14:48:21

标签: c++ static field

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

2 个答案:

答案 0 :(得分:4)

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

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

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

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

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

答案 1 :(得分:1)

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