C++静态数据成员初始化
C++ static data members initialization
1) 类的静态数据成员总是在调用main()之前初始化,这是真的吗?
2)如果类初始化代码的静态数据成员使用其他翻译单元的全局静态变量,是否真的会发生"静态初始化顺序惨败"?
我在哪里可以阅读更多关于它的信息?我在 2003 年的C++标准中找不到答案。
多谢。
1)类的静态数据成员总是在调用main()之前初始化,这是真的吗?
是的,它们将始终在程序开始执行之前初始化。
2)如果类初始化代码的静态数据成员使用其他翻译单元的全局静态变量,是否真的会发生"静态初始化顺序惨败"?
是的,除此之外,它还发生在执行之前初始化的所有其他事情main()
。
对两个答案都是肯定的。
有关它的良好描述,请参阅 https://isocpp.org/wiki/faq/ctors#static-init-order。
相关文章:
- 是否可以使用右值初始化数据成员?
- 扩展初始值设定项列表和未初始化的成员
- 初始化类成员的更好做法是什么?
- 使用 {} 初始化类成员
- 构造函数正在初始化数据成员
- 在类声明中初始化 const 成员变量时在调试模式下出现异常
- 初始化 const 成员的正确方法
- 初始化数据成员取决于构造函数中的条件
- 获取未初始化对象成员的地址是否定义良好?
- 为什么C++可以使用未初始化的成员变量(引用或指针 *NOT 值复制*)来初始化其父类的成员变量
- C - 初始化静态成员的方法
- 使用大型数据集初始化类成员向量的最有效方法
- 如何在C 11中正确初始化数据成员
- 在C++中,如果我们不在构造函数中初始化数据成员,那么类中数据成员的值会是多少
- 为什么我们需要构造函数 C++,我们可以通过函数(初始化数据或访问私有数据成员)来做同样的事情
- 正在初始化数据文件中的静态常量成员
- 用成员函数初始化数据成员
- 如何用该类的其他成员数据初始化类成员数据
- 尝试在构造函数中初始化数据成员,但失败.为什么
- 在c++中使用初始化列表初始化数据成员引用