I have
class Foo
class Bar
现在,我想要
Foo* Foo::singleton = new Foo();
Bar* Bar::singleton = new Bar();
之前都初始化
int main()
叫做。
此外,我想要
Foo::singleton
之前初始化
Bar::singleton
我能保证吗?
Thanks!
在同一翻译单元中定义的全局变量(如单例)按照它们定义的顺序进行初始化。因此,将两个单例的定义按照正确的顺序放在同一个源文件中。
如果它们在不同的源文件中定义,则它们的初始化顺序将是未指定的(“静态初始化顺序惨败").
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)