cod*_*der 3 c++ initialization
可以说我有代码:
main.cpp:
my_obj1 obj1("hello obj1"); my_obj2 obj2("hello obj2"); int main() { : : }
我想知道是否obj1总是被保证创建之前obj2。
obj1
obj2
如果我认为这两个对象在课堂上都可以,那将是正确的。
son*_*yao 7
是的,在单个转换单元内,保证全局变量的初始化按其定义的顺序进行排序。这意味着obj1可以保证在之前初始化obj2,然后在销毁obj2。
3)有序动态初始化,该动态初始化适用于所有其他非局部变量:在单个转换单元中,这些变量的初始化始终按准确的顺序排序,其定义出现在源代码中。
顺便说一句:类成员的初始化顺序还取决于它们的声明顺序,这与您在成员初始化程序列表中指定它们的方式无关。
3)然后,按类定义中的声明顺序初始化非静态数据成员。
归档时间:
6 年,10 月 前
查看次数:
69 次
最近记录: