如果我有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;
}
答案 0 :(得分:6)
因为它们都在同一个编译单元(main.cpp)
因此,他们保证按声明的顺序排列 因为您按特定顺序包含头文件(由于某些奇怪的原因,这是声明变量的位置)。
因此订单是:
Test1 test1;
Test2 test2;
注意:在头文件中声明变量是一个坏主意(它们应该在源文件中声明)。否则你最终会得到多个声明。