我有另一个类中的类的静态变量。静态变量初始化 - 澄清
class1.h
class1
{
public:
static class2 check;
}
class2.cpp
class2 class1::check;
现在class2.cpp具有以下默认构造函数
class2()
{
size = G_SIZE; //this G_SIZE is an extern variable, which gets initialized after main() is called.
}
由于静态初始化发生在外部变量初始化之前,我得到0初始化大小。我该如何处理?
编辑:不确定为什么它被downvoted。
没有完全理解你 - 这里有什么问题? – TarmoPikaro
class2默认构造函数在静态成员初始化过程中被调用,这发生在main调用之前。由于这个原因,size变量没有使用我想要的值(G_SIZE)进行初始化。由于G_SIZE只有在调用main()之后才能获得它的值。我如何通过正确的值来获得大小的初始化。 – user2761431
''G_SIZE'在*'main'被调用之前被初始化,就像'class1 :: check'一样。如果变量是以不同的翻译单位定义的,则这些初始化的顺序是未指定的。 – molbdnilo