gpt4 book ai didi

c++ - C++11有规定静态/全局变量的构造顺序吗?

转载 作者:搜寻专家 更新时间:2023-10-30 23:52:59 25 4
gpt4 key购买 nike

在C++98/03中,静态对象(在文件中,类中,函数中)的构造没有指定的顺序,一个静态对象不能假设它是在另一个静态对象之后或之前构造的,似乎是由链接器。

我的问题是,C++ 11/14 对静态对象和全局对象的构造顺序有没有规定什么规则?

最佳答案

规则没有改变。然而,所有全局/静态对象都是按照它们在翻译单元中出现的顺序构造的。只是未指定多个翻译单元的初始化顺序。

请注意,函数局部静态对象是以特定方式构造的。它们是在第一次到达它们的声明时构造的,并且一直存在到程序结束。此行为在 C++11 中已更改,尽管在 C++11 之前初始化不是线程安全的,而 C++11 及更高版本指定静态初始化将是线程安全的。

关于c++ - C++11有规定静态/全局变量的构造顺序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42580724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com