2013-01-05 48 views
0

我有奇怪的Qt 4問題。 我試圖讓MyList的QList,但它說MyClass:未聲明的標識符。 我在全局對象中使用它..這是代碼,讓我知道我做錯了什麼。 此致敬禮。QList和MyClass未聲明的標識符

global_objects.h:

#ifndef GLOBAL_OBJECTS_H 
#define GLOBAL_OBJECTS_H 

#include <QList> 
#include "myclass.h" 

extern QList<MyClass*> Test; //undeclared identifier, why??? 

#endif // GLOBAL_OBJECTS_H 

global_objects.cpp:

#include "global_objects.h" 
QList <MyClass*> Test; 

MyClass的是空的QObject的,沒有添加任何東西。有什麼問題 ?!

+0

是在全局命名空間中定義的MyClass? –

+0

也可以,myclass.h有任何機會#include file global_objects.h(mutual #include)? –

+0

不,它的定義是這樣的:class MyClass:public QObject,然後是Q_OBJECT宏 – Nika

回答

1

你有一個相互包含的問題:爲了你的目的,我認爲在global_objects.h中前向聲明MyClass就足夠了。您不需要#include myclass.h那裏

+0

我試過了,但仍然一樣問題:MyClass.h不包含global_objects.h,只包含global_objects.h包含MyClass.h,但同樣的錯誤:( – Nika

+0

myclass.h是否包含任何其他直接或間接包含global_object.h的頭文件? –

+0

順便說一句,它不是相互包含的問題,因爲我有#ifdef。讓我pastebin我的代碼,並會告訴你。 – Nika

-1

您是否將MyClass.h加入您的global_objects.cpp

我在想如果你使用MyClassglobal_objects.cpp那麼你應該用pre-complile命令聲明它。

希望有所幫助。

+0

他通過包含global_objects.h來間接完成。問題是global_objects.h和myclass.h互相包含在一起 –

+0

我沒有在Global_objects.cpp中包含MyClass.h,我試過但仍然有同樣的問題。 – Nika

+0

@OverFlowz:你間接做過。 global_objects.cpp包含global_objects.h和global_objects.h包含myclass.h,所以通過傳遞性global_object.cpp包含myclass.h –