[問題] g++ 編譯 class樣板 報錯

看板C_and_CPP作者 (Charlott.HonG)時間8年前 (2016/05/19 21:37), 8年前編輯推噓3(304)
留言7則, 2人參與, 最新討論串1/1
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

05/19 22:21, , 1F
宣告式改Demo(const T1 &p, const T2 &n);
05/19 22:21, 1F

05/19 22:21, , 2F
定義式改Demo<T1, T2>::Demo(const T1 &p, const T2 &n) {
05/19 22:21, 2F

05/19 22:21, , 3F
試試看
05/19 22:21, 3F
太神了,通過了,我翻超久的((淚 非常感謝您的協助 可以請問大致是怎麼一回事嗎 我會這麼做是因為教學講義上提到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

05/19 23:43, , 4F
沒有為什麼...syntax規定就是這樣XD
05/19 23:43, 4F
了解~感謝您 不過我又有又有問題了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

05/20 00:02, , 5F
是 void Demo<T1,T2>::set(....)
05/20 00:02, 5F
※ 編輯: 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

05/20 00:11, , 6F
@@ 你是指visual studio 嗎? 我編不過耶
05/20 00:11, 6F
ㄚㄚ是第一份程式碼 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

05/20 00:33, , 7F
Visual Studio應該有warnning吧 它偷幫你改掉
05/20 00:33, 7F
※ 編輯: hunandy14 (114.35.139.127), 06/02/2016 10:49:11
文章代碼(AID): #1NFS6rYE (C_and_CPP)