作者UCboy (遊戲boy)
看板C_and_CPP
標題[問題] 專案間不同.cpp檔的struct引用
時間Thu Oct 1 20:40:52 2015
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
OpenCV
問題(Question):
如何在A.cpp引用B.cpp中的struct?
餵入的資料(Input):
所說的struct:
typedef struct blob_{
int a
CvScalar brgb;
}
blob;
typedef struct slicrtn_{
vector<
blob> fnlblob;
vector<Mat> roimgs;
}
slicrtn;
預期的正確結果(Expected Output):
(slicrtn原本是B.h中的結構,欲在A中引用此結構)
將B.cpp output的
slicrtn結構的物件
成功當成A.cpp中函式的input並編譯執行
錯誤結果(Wrong Output):
目前我是兩個.h檔中都typedef這個struct = =
想當然爾結果錯誤就是
'blob_' : 'struct' 類型重複定義
'slicrtn_' : 'struct' 類型重複定義
我兩個.h檔頭尾都有用
#ifndef#define#endif夾住
想問一下這個情況該如何解決?
程式碼(Code):(請善用置底文網頁, 記得排版)
專題中的Main:
Slic slic;
// Slic是B.cpp中的類別
slicrtn fnlrslt = slic.bb();
// bb是B.cpp中的函式
aa(fnlrslt);
// aa是A.cpp中的函式
補充說明(Supplement):
拜託各位大大指點迷津了!!
感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.118.235.69
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443703255.A.6D4.html
推 stupid0319: 把其中一個刪掉呢? 10/01 21:22
推 flyfoxy: A要引用B 所以struct放在B裡面就好 或是抽出共用的放在C 10/01 21:46
→ flyfoxy: A B都引用C 10/01 21:47
只在B.h中宣告,然後A.cpp 中 include B.h的話
A.h中的aa宣告就會出錯了
'slicrtn' : 未宣告的識別項
※ 編輯: UCboy (140.118.235.69), 10/01/2015 22:19:24
不過在A.h中include B.h就可以了 !!
第一次在.h中引用自己其他的.h檔 -.-
感謝各位!!
※ 編輯: UCboy (140.118.235.69), 10/01/2015 22:29:13
推 s25g5d4: extern? 10/02 01:38