0
如果我有兩個頭文件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;
}
真正的答案很簡單:「不要那樣做!」在這種情況下,「that」是指定義標題中的對象。它基本上破壞了將某些東西放在標題中的目的(即,如果將標題包含在多個源文件中,則會獲得這些對象的多個定義,這會導致未定義的行爲)。 – 2012-04-19 04:44:56