[問題] 標頭檔中 class 無法宣告 Mat (opencv)

看板C_and_CPP (C/C++)作者 (番茄汁)時間10年前 (2015/09/26 19:06), 10年前編輯推噓2(2010)
留言12則, 4人參與, 最新討論串1/1
開發平台(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

09/26 20:11, , 1F
header.h 裡 #include 進 Mat 所在的標頭檔
09/26 20:11, 1F

09/26 20:12, , 2F
#include<cv.h> ?
09/26 20:12, 2F

09/26 20:13, , 3F
using namespace cv; ?
09/26 20:13, 3F
第一張是寫在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

09/26 21:06, , 4F
對, 照我說的 tomato.h 裡 #include<cv.h>
09/26 21:06, 4F

09/26 21:06, , 5F
但千萬不要在 header 裡 using namespace
09/26 21:06, 5F

09/26 21:06, , 6F
為此改一下拉出去的宣告裡的 Mat 為 cv::Mat 即可
09/26 21:06, 6F

09/26 21:37, , 7F
OK~~~感謝大大 我試試看Q_Q
09/26 21:37, 7F

09/26 22:31, , 8F
我想問66大為什麼不要在head裡用using namespace?
09/26 22:31, 8F

09/26 22:32, , 9F
雖然我都完全不加但是還是想知道
09/26 22:32, 9F

09/26 22:34, , 10F
@n666160 : 命名空間衝突,其他地方有 Mat class 就 GG 了
09/26 22:34, 10F
成功了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Q_Q!!!!!!!!!!!!!!!!!!!!! 太感謝你了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我要把我身上所有的P送給大大Q_Q 感謝Q_Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 以後程式終於不用寫在一個肥肥的main檔裡面了 ※ 編輯: storm654321 (1.173.10.214), 09/26/2015 23:46:24

09/26 23:54, , 11F
身上所有的 P 幣 ... 一塊二毛五 ? XD
09/26 23:54, 11F

09/26 23:55, , 12F
O'_'O 剛好 1080P FHD啦!
09/26 23:55, 12F
文章代碼(AID): #1M1dn7BD (C_and_CPP)
文章代碼(AID): #1M1dn7BD (C_and_CPP)