C++静态数据成员初始化

C++ static data members initialization

本文关键字:初始化 数据成员 静态 C++      更新时间:2023-10-16

1) 类的静态数据成员总是在调用main()之前初始化,这是真的吗?

2)如果类初始化代码的静态数据成员使用其他翻译单元的全局静态变量,是否真的会发生"静态初始化顺序惨败"?

我在哪里可以阅读更多关于它的信息?我在 2003 年的C++标准中找不到答案。

多谢。

1)类的静态数据成员总是在调用main()之前初始化,这是真的吗?

是的,它们将始终在程序开始执行之前初始化。

2)如果类初始化代码的静态数据成员使用其他翻译单元的全局静态变量,是否真的会发生"静态初始化顺序惨败"?

是的,除此之外,它还发生在执行之前初始化的所有其他事情main()

对两个答案都是肯定的。

有关它的良好描述,请参阅 https://isocpp.org/wiki/faq/ctors#static-init-order。