看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 2012 問題(Question): template中重載運算子 << ,分成.h 跟 .cpp後失敗.. 放在.h檔裡面OK。 程式碼(Code):*[m http://ideone.com/4QKTvU 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.121.198.169 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1395890046.A.41E.html
lovesnake:標題錯字 ((汗 分開寫會Linking error才對 03/27 11:14
dododavid006:試了下原因似乎是因為宣告class 的template 中的 03/27 13:25
dododavid006:Container 名字重覆了 所以換個名字看看 03/27 13:26
lovesnake:?!?! Container名字重複是指? 03/27 14:46
lovesnake:StringContainer跟IntegerContainer是自訂類別 03/27 14:47
lovesnake:另外Node這個Class很肥..但其他註解掉後錯誤是一樣的 03/27 14:48
lovesnake:所以只有附上有錯誤的部分 03/27 14:48
a27417332:應該是這個http://yodalee.blogspot.tw/2012/09/c-templ 03/27 18:21
a27417332:失敗,重來。http://ppt.cc/~ztE 03/27 18:21
謝謝樓上,不過我在.cpp檔有實體化喔~ 相當於文章中的第二種方法, 其他函式也確實沒問題,整支程式都可以跑了...就只剩下這個Operator分開會出現 Linking Error,無法解析的外部符號... 因為其他的Operator Overloadding都沒什麼問題,懷疑會是friend跟template 之間需要作什麼特殊處理,但目前還查不到相關資訊 Orz ※ 編輯: lovesnake 來自: 140.121.198.169 (03/27 19:48)
dirkc:http://ideone.com/4Qj5A6 但還是推薦放在header檔裡 03/28 16:58
dirkc:放在.cpp裡太邪惡也太痛苦了 03/28 17:03
原來Friend在CPP裡面也要都實例化一遍...了解了~ 謝謝!! 哈哈,的確很麻煩~ 不過對我來說,無法把Declaration跟Definition分開來寫我會更痛苦 Orz 或許以後會習慣吧 XD... ※ 編輯: lovesnake 來自: 140.121.198.169 (03/28 22:50)