我正在用C++編寫一個多文件程序(School project)。昨天我遇到了一個很奇怪的問題。當我在程序中包含一個特定的頭文件時,它拒絕編譯。它給了我錯誤「missing; before *」,這表明我的一些類在其他頭文件中聲明的類變得未聲明或類似的東西。我包含的頭文件包括頭文件也包括我包含的頭文件。另一方面,我正在使用#if!defined(FILENAME_H)來避免重複包含。還值得一提的是它只是一個特定的頭文件導致了我的問題,並且定義的/未定義的/ endif代碼沒有任何問題。頭文件問題
頭文件問題
回答
看起來你有問題的標題是這樣的:
class A
{
}
沒有;
類聲明之後。一旦你包含這個頭文件,它會在稍後導致錯誤。
我已經在其他地方包含頭文件,並且該類有一個;在結束括號後。 – Martin 2013-04-21 09:43:00
@Martin你可以提供問題標題嗎? – alexrider 2013-04-21 09:44:34
@Martin:你的問題最有可能與相互包容。請看看[這個Q&A](http://stackoverflow.com/questions/14909997/why-arent-my-include-guards-preventing-recursive-inclusion-and-multiple-symbol),我鏈接在對你的問題的評論 – 2013-04-21 10:03:24
多德每頭文件應與
#ifndef NAMEOFFILE_H
#define NAMEOFFILE_H
and end with
#endif
這確保了一個頭文件不包含在你的程序不止一次開始。
此外,如果你的類是未申報的我敢肯定你一定錯過
在大括號的類確定指標
OP提到包括守衛在那裏。編譯器錯誤是誤導性的,通常是由於包含相互頭文件而產生的。這一切都解釋[這裏](http://stackoverflow.com/questions/14909997/why-arent-my-include-guards-preventing-recursive-inclusion-and-multiple-symbol) – 2013-04-21 10:04:05
- 1. pcap.h頭文件問題
- 2. 頭文件的問題
- 3. C++頭文件問題
- 4. 頭文件問題7
- 5. soap頭問題<wsse:Security>頭文件
- 6. C++頭文件編譯器問題(Sales_item.h)C++頭文件示例
- 7. XCode頭文件掃描問題
- 8. Eclipse的C + +頭和文件問題
- 9. C++頭文件簡單問題
- 10. C++頭文件變量範圍問題
- 11. Boost預編譯頭文件問題
- 12. android resttemplate + httpclient頭文件編碼問題
- 13. 導致問題的頭文件
- 14. 預編譯頭文件設計問題
- 15. C++頭文件保護問題
- 16. C++包含頭文件問題
- 17. C遞歸頭文件包含問題?
- 18. makefile或頭文件的簡單問題?
- 19. Android:涉及頭文件的問題
- 20. Bazel-問題導入頭文件
- 21. 頭js加載javascript文件的問題
- 22. C++頭文件 - 語法問題
- 23. 基本的C++頭文件問題
- 24. 創建頭文件時出現問題
- 25. 導入頭文件的問題
- 26. 獲取歌曲文件頭的問題
- 27. 在頭文件中的WndProc()的問題
- 28. C++頭文件和類定義問題
- 29. 這個頭文件有什麼問題?
- 30. 預編譯頭文件的問題?
這[Q&A]後結束}分號(HTTP:/ /stackoverflow.com/questions/14909997/why-arent-my-include-guards-preventing-recursive-inclusion-and-multiple-symbol)(特別是第一個問題/答案)應該可以幫助你 – 2013-04-21 09:37:33
那麼問題是什麼? – juanchopanza 2013-04-21 09:37:38
@AndyProwl我相信這回答我的問題,謝謝:D – Martin 2013-04-21 10:06:09