[問題] 每次編譯的錯誤都不一樣(Header檔重複引用)

看板C_and_CPP (C/C++)作者 (菜逼八準菸酒生)時間12年前 (2013/12/17 23:47), 編輯推噓3(303)
留言6則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Windows, Elicpse, MinGW GCC 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) C++ std lib 問題(Question): 1.每次編譯會出現不同的錯誤 即使程式碼完全沒有修改 2.錯誤「多重宣告」,但是報在同一行… 已嘗試: 1.Clean整個Project重新編譯,無效。砍掉Debug資料夾重新編譯,無效。 2.把該變數宣告移動到別的.cpp檔裡面也一樣報錯 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) 2. http://i.imgur.com/oAoXPnk.jpg
補充說明(Supplement): 整個程式的namespace都是std 編譯參數都是預設 沒有調整 寫C很多年了,最近幾週才開始寫C++,結果就碰到這種怪問題, 原本以為是Eclipse在設定上動到什麼,結果好像也不是 找了身邊幾個會C++的朋友也沒不清楚發生什麼事情 只好上來請教鄉民了 請問有人碰過類似問題嗎? -- 「連系上的課都選不到不就只能延畢了嗎!」 「我啊…真是個笨蛋」 「大四25學分...這絕對很奇怪啊!」 「你能面對真正的選課嗎?」 「一個人大五,很寂寞吧」 「你就不能體諒一下大四的嗎!」 「加簽什麼的,怎麼可能會有」 「(發買課文ing)已經沒什麼好怕的了」 「無法迴避的衝堂與停開,就由你來顛覆吧」 「和我簽下契約,成為大五生吧!」 魔法大學生 選課☆危機 現正熱映中 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.25.92

12/17 23:58, , 1F
你是否有 include 別的 cpp 檔?
12/17 23:58, 1F
每一個Class有自己的.cpp和.h檔(IDE自動產生) 然後就是我圖片裡面自己拿來放資料結構的.cpp檔而已 ※ 編輯: wuliou 來自: 60.244.25.92 (12/18 00:02)

12/18 00:24, , 2F
是不是有其他 .cpp/.h 檔 include "data.cpp"
12/18 00:24, 2F
有用到他的Class都有include (包含main()) 還是說不能這樣用?

12/18 00:54, , 3F
純推簽名檔...
12/18 00:54, 3F
※ 編輯: wuliou 來自: 60.244.25.92 (12/18 09:38)

12/18 10:03, , 4F
include多次當然就會這樣 你要想辦法保證他只引用一次
12/18 10:03, 4F

12/18 10:34, , 5F
通常這會使用 header guard 或 #pragma once 來保證
12/18 10:34, 5F

12/18 10:34, , 6F
另外個人建議這個檔改副檔名為 .h 以防往後的誤會
12/18 10:34, 6F
原來是這個原因 被Java寵壞了XD 我努力看看 謝謝 ※ 編輯: wuliou 來自: 60.244.25.92 (12/18 15:35) 感謝各位鄉民解答,後來我改用這方法實作就OK了: 新增Class GlobalVar,讓Eclipse自動產生該有的.cpp,.h檔案及header guard。 加入int globalId為static member 稍微修改一下標題方便大家查詢 ※ 編輯: wuliou 來自: 60.244.25.92 (12/18 22:21)
文章代碼(AID): #1Ii78TtH (C_and_CPP)
文章代碼(AID): #1Ii78TtH (C_and_CPP)