2011-11-21 109 views
0

我正在Qt中製作一個UI,並且需要在spel.h中包含input.h,當我在mainwindow.h中使用input.h時,一切正常,但我也需要在我的spel中使用它。小時,然後QT給出了這些錯誤:頭文件給出錯誤

expected ')' before '*' token Input.h R 9 
ISO C++ forbids declaration of 'Form' with no type Input.h R 13 
expected ';' before '*' token Input.h R13 

我和我的朋友正在尋找2小時,現在仍然不明白爲什麼它給錯誤。包括衛兵一切都沒問題。

Input.h:

#ifndef INPUT_H 
    #define INPUT_H 
    #include "form.h" 

    class Input 
    { 

    public: 
     Input(Form * pointer):speler(pointer){}; 
     int geefGoederenPopup(void); 

    private: 
     Form * speler; 
    }; 


#endif // INPUT_H 
+0

什麼是form.h?另外,請將代碼放在您的實際問題中 - 而不是指向pastebin網站的鏈接。 – tenfour

+5

你能告訴我們'form.h'嗎?使用前向聲明可能會解決您的直接問題,但我懷疑您的Form類聲明存在問題。 – birryree

+0

我的錢就在你忘記在Form類聲明結尾處的分號,但在我們看到form.h文件之前,很難說。 – misha

回答

2

是否form.h包括input.h?如果是這樣,你有一個週期性的包含問題,這是一個包含警衛無法解決的問題。但無論如何,您可以轉發聲明表單而不是包含其頭文件。其實我很確定這會解決問題。

+0

沒有form.h不包括input.h。並且提前宣佈這個班也行不通。 – user1007522

+0

'mainwindow.h'包含'input.h',其中包含'form.h',其中包含''mainwindow.h'。沒有循環呃?除此之外,爲什麼在'form.h'中包含'mainwindow.h',也許你沒有粘貼整個代碼,或者它實際上是無用的? – azf

+0

你說得對。這可能是問題。 – user1007522