0

如果我有 2 个头文件,Test1.h 和 Test2.h,我分别在其中定义类 Test1 和 Test2,并在头文件中实例化这些类的 2 个对象,并将它们包含在 main.cpp(Test1.h 和 Test2.h按那个顺序)包含主函数,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;
}
4

1 回答 1

6

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

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

因此顺序是:

Test1  test1;
Test2  test2;

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

于 2012-04-19T04:43:12.793 回答