看板 C_and_CPP 關於我們 聯絡資訊
g++ 編譯 class樣板 報錯 請問一下是我的程式碼有問題嗎 還是g++無法編譯這樣的寫法呢 神奇的是VB可以編過 原始程式如 https://goo.gl/cf8MCQ 我想把他寫進.h檔, 要把函式寫在class外, 怎麼樣都編不過, 寫在class裡面是可以編過的 (有保留在程式裡面註解) 錯誤訊息是 Source.cpp:21:1: error: 'Demo<T1, T2>::Demo' names the constructor, not the type Demo<T1, T2>::Demo<T1, T2>(const T1 &p, const T2 &n) { ^ Source.cpp:21:1: error: and 'Demo<T1, T2>' has no template constructors [Finished in 0.2s with exit code 1] 解答可以參考我做的範例:https://goo.gl/vWtewy ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.139.127 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1463665077.A.88E.html
kwpn: 宣告式改Demo(const T1 &p, const T2 &n); 05/19 22:21
kwpn: 定義式改Demo<T1, T2>::Demo(const T1 &p, const T2 &n) { 05/19 22:21
kwpn: 試試看 05/19 22:21
太神了,通過了,我翻超久的((淚 非常感謝您的協助 可以請問大致是怎麼一回事嗎 我會這麼做是因為教學講義上提到QQ Demo<T1, T2>::Demo<T1, T2>(){} 不過他沒明講怎麼做剩下我就看著這行補了 ※ 編輯: hunandy14 (114.35.139.127), 05/19/2016 22:58:02 ※ 編輯: hunandy14 (114.35.139.127), 05/19/2016 23:01:12
bibo9901: 沒有為什麼...syntax規定就是這樣XD 05/19 23:43
了解~感謝您 不過我又有又有問題了QQ 我照著這樣的做法把建構子兩個移出來了 可當我移動其他函式的時候卻沒有辦法按到原本方式 程式碼:https://gist.github.com/anonymous/5c5b16787f9e6be05f0b05b53dcc5cd9 你看main()的上方跟void set(const T1 &p, const T2 &n) 我想要把這個移出來,按照裡面留著的註解會報錯 Hw14_fun.cpp:75:14: error: expected unqualified-id before 'void' Demo<T1,T2>::void set(const T1 &p, const T2 &n){ 可以在救我一次嗎QQ ※ 編輯: hunandy14 (114.35.139.127), 05/19/2016 23:59:28
bibo9901: 是 void Demo<T1,T2>::set(....) 05/20 00:02
※ 編輯: hunandy14 (114.35.139.127), 05/20/2016 00:03:38 阿對齁 "::" 是黏在名稱前面不是型態 卡這個問題想到壞掉惹QQ 太感謝你們了,過了 ((ありがとうございました 這樣VB怎麼過的了(VB可以編過),一個不小心不就養成壞習慣了 ※ 編輯: hunandy14 (114.35.139.127), 05/20/2016 00:09:57
bibo9901: @@ 你是指visual studio 嗎? 我編不過耶 05/20 00:11
ㄚㄚ是第一份程式碼 https://goo.gl/cf8MCQ 這個visual studio13 15都能過 ※ 編輯: hunandy14 (114.35.139.127), 05/20/2016 00:24:50 https://imgur.com/XFa3BKL.jpg
※ 編輯: hunandy14 (114.35.139.127), 05/20/2016 00:28:04
kwpn: Visual Studio應該有warnning吧 它偷幫你改掉 05/20 00:33
※ 編輯: hunandy14 (114.35.139.127), 06/02/2016 10:49:11