[問題] 不是類別或命名空間名稱 & 找不到識別項

看板C_and_CPP作者時間8年前 (2015/12/15 19:06), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Visual Studio 2008 問題(Question): 範例如下面程式碼,(因原文過大,故僅留下加入後出問題的地方) 編譯的想法是Class A因為內容過多,且希望有些功能可重複利用 因此想將Class A某個複雜的函式另外寫一個Class B做處理 (Class B的INSIDE函式是將Class A內的影像做RGB與YUV間的轉換) 但卻出現以下的錯誤結果 故想請問是否有高手知道我犯了甚麼錯誤 感謝~!!! (因初學有些語法的部分可能還不太清楚,請多見諒QQIII) 錯誤結果(Wrong Output): error C2653: 'B' : 不是類別或命名空間名稱 error C3861: 'INSIDE': 找不到識別項 程式碼(Code): -------------------------------------------- //A.h #include “B.h” class A { public: void OUTSIDE(void); }; void A :: OUTSIDE(void) { B :: INSIDE(*this); //錯誤出現在這行 } -------------------------------------------- -------------------------------------------- //B.h #include “A.h” class B { public: static void INSIDE(A& a); }; void B :: INSIDE(A& a) { …………………………… } -------------------------------------------- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.205.229 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1450177582.A.401.html

12/15 23:03, , 1F
我猜兩個class相互include可能會有問題 你A includeB時
12/15 23:03, 1F

12/15 23:04, , 2F
別放在A.h 放在A.cpp
12/15 23:04, 2F

12/15 23:05, , 3F
不過這種A B互相include不是好寫法 盡量不要整個A this
12/15 23:05, 3F

12/15 23:07, , 4F
丟進B 應該是A裡的member分去B處理
12/15 23:07, 4F

12/16 11:30, , 5F
感謝過頭! 我改用您建議的傳入成員作法,已可正常使用
12/16 11:30, 5F

12/16 11:31, , 6F
同樣感謝您指教我較良好的coding習慣!!!
12/16 11:31, 6F
文章代碼(AID): #1MR_GkG1 (C_and_CPP)