看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): VC++ 額外使用到的函數庫(Library Used): opencv 問題(Question): 大家好 O'_'O 小弟用 opencv & visual c++ 的時候 在 main.cpp 中把 mat 宣告在 class 的 private 可以順利執行 class apple { public: private: Mat a; }; void main() { } 但是 把 class 擺到 header.h檔 程式就不給過... class apple //擺到header中 { public: private: Mat a; }; 請問為什麼會這樣? (環境變數有設好 在另一個CPP檔案中 也可宣告檔案+show檔) 如果使用 opencv 時 想把寫好的 class 封裝到標頭檔 該怎麼做比較好呢? Code: https://drive.google.com/file/d/0B6-WS8IHZbA9Um9wUFBneElxXzQ/view?usp=sharing (用VS2015+opencv3.0 路徑是 c:\opencv3\...) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.64.91.23 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1443265607.A.2CD.html
LPH66: header.h 裡 #include 進 Mat 所在的標頭檔 09/26 20:11
n666160: #include<cv.h> ? 09/26 20:12
n666160: using namespace cv; ? 09/26 20:13
第一張是寫在MAIN檔裡可以過的情形 http://imgur.com/a/Kfeg3 第二張是用 標頭檔封裝的情形@@! ※ 編輯: storm654321 (203.64.91.23), 09/26/2015 20:45:58 ※ 編輯: storm654321 (203.64.91.23), 09/26/2015 20:52:01
LPH66: 對, 照我說的 tomato.h 裡 #include<cv.h> 09/26 21:06
LPH66: 但千萬不要在 header 裡 using namespace 09/26 21:06
LPH66: 為此改一下拉出去的宣告裡的 Mat 為 cv::Mat 即可 09/26 21:06
storm654321: OK~~~感謝大大 我試試看Q_Q 09/26 21:37
n666160: 我想問66大為什麼不要在head裡用using namespace? 09/26 22:31
n666160: 雖然我都完全不加但是還是想知道 09/26 22:32
EdisonX: @n666160 : 命名空間衝突,其他地方有 Mat class 就 GG 了 09/26 22:34
成功了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Q_Q!!!!!!!!!!!!!!!!!!!!! 太感謝你了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我要把我身上所有的P送給大大Q_Q 感謝Q_Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 以後程式終於不用寫在一個肥肥的main檔裡面了 ※ 編輯: storm654321 (1.173.10.214), 09/26/2015 23:46:24
EdisonX: 身上所有的 P 幣 ... 一塊二毛五 ? XD 09/26 23:54
storm654321: O'_'O 剛好 1080P FHD啦! 09/26 23:55