看板 EE_DSnP 關於我們 聯絡資訊
阿...我又來發問啦...orz 繼上次的hw1.2.p1後 這次總算是有這個資格來請教hw1.2.p2的問題啦XD 本來是想要睡覺前把hw1.2.p2給解決的 因為前面的兩小題越寫越有興致XD(以前沒有幹過functional object這檔事) 好,回到正題 目前小弟我卡在hw1.2.p2c的部分...... 因為我不知道繼承了母class的子class到底要怎麼用template來寫 雖然我寫到這個時間回去看題目 才發現按題意好像不需要替Less和Greater作template就可以解決這題了... 但是都寫出來了就會想要寫完他阿XD 所以這就是我的問題了... 到底要怎麼為一個子class製作template呢?? 還是說其實不需要?只要母class有template就可以直接套呢? 但是我想到如果子class自己有其他的function想要作template 應該還是要可以作才行,所以應該替子class作template是合法的吧? 阿...總之我是這樣寫的...@@ template <class T> class Compare { public: virtual xxxxxxxxx(const T&, const T&) const = 0; }; template <class T> class Less : public Compare { public: xxxxxxxxxxxxxx(const T& _idvA, const T& _idvB) const { XXXXXXXXXXXXX } }; Greater的部分同理,其中XXXXX的部分是自動屏蔽.... 雖然我也知道沒有人會想要看那些部分orz 恩,理所當然的我compile不過,所以人在這裡發文XD 我所收到的錯誤信息是: expected class-name before 「{」 token 連續以上同樣兩句是針對class Less...和class Greater這兩行 還有 不能將「Less<int>*」轉換為「Compare<int>*」在initialization中 等數句是針對物件"compare"作polymorphism的時候 所以是這樣的寫法沒有辦法建立Less和Greater的template嗎? 我卡在這裡好久了@@...找了一下有關template的文章 都只有用我寫的這種寫法...不過好像都沒有提到跟inheritance有關的@@ 誰來救救我啊orz.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.86.111
a3785lexx:呃這...這實在太呃這了... 10/10 02:52
a3785lexx:剛剛發完文後想說再試一下後就去睡覺吧... 10/10 02:53
a3785lexx:結果就被我試成功了@@ 10/10 02:53
a3785lexx:簡單來說...我一開始有試過每個class name後面接<T> 10/10 02:53
a3785lexx:然後就失敗了 10/10 02:54
a3785lexx:剛剛才發現...還沒有建立template的class name不能加<T> 10/10 02:54
a3785lexx:但如果要用到已經有建立template的class 10/10 02:54
a3785lexx:就要在被用到的class name後面加<T> 10/10 02:55
a3785lexx:其實我忘了教授有沒有教了...記性不好@@ 似有若無的 10/10 02:56
a3785lexx:如果教授有教過的話就請誰跟我說一下我把這篇文砍了吧XD 10/10 02:56
ric2k1:基本上你得到正解了, 是的, 宣告過的class 在使用時要加<T> 10/10 03:37
ric2k1:你的第二個問題... 我看不懂你在問什麼? 10/10 03:39
tarzan314:我也碰到類似的問題 10/11 19:32
a3785lexx:呃...教授是說最後一個問號嗎? 10/12 00:40
a3785lexx:我其實只是想要問complier的錯誤訊息是甚麼意思而已XD 10/12 00:40
a3785lexx:另外我這題雖然寫出來了...可是寫的好醜歐囧 10/12 00:40
a3785lexx:因為我不知道要怎麼直接assign T的內容... 10/12 00:41
a3785lexx:所以就真的只好一個個functional object直接call... 10/12 00:42
a3785lexx:結果程式碼就變的好長= =" 10/12 00:43
a3785lexx:而且重複的部分好多...重複率高達八成XD 10/12 00:43
ric2k1:啊, 真的嗎? 這題的目的就是要利用這些語法將重複的 code 10/12 01:13
ric2k1:share 在一起... 也許找同學討論一下, 或是明天來找我. 10/12 01:13
muxiv: 我其實只是想要問com https://moxox.com 07/12 00:23