gpt4 book ai didi

c++ - 全局变量的实例化顺序

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:58 25 4
gpt4 key购买 nike

如果我有 2 个头文件,Test1.h 和 Test2.h,我在其中分别定义类 Test1 和 Test2,并在头文件中实例化这些类的 2 个对象,并将它们包含在 main.cpp 中(Test1.h 和test2.h中的那个顺序)里面包含了main函数,那么test1和test2对象的实例化顺序是什么?

// Test1.h

class Test1
{

};

Test1 test1;

// Test2.h
class Test2
{

};

Test2 test2;

// main.cpp

#include "Test1.h"
#include "Test2.h"

int main( int argc, const char * argv [] )
{
return 0;
}

最佳答案

因为它们都在同一个编译单元(main.cpp)

这样就保证了声明的顺序。
因为您以特定顺序包含头文件(出于某种奇怪的原因,这是声明变量的位置)。

因此顺序是:

Test1  test1;
Test2 test2;

注意:在头文件中声明变量是个坏主意(它们应该在源文件中声明)。否则你最终会得到多个声明。

关于c++ - 全局变量的实例化顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10221717/

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