推 alextan:應該是漏了parameter 10/08 22:49
推 simpdanny:Less()() 前一個括號呼叫constructor 10/08 22:50
→ simpdanny:後一個括號讓他變成functional object 10/08 22:50
→ djshen:是要寫constructor? 10/08 22:54
推 nfprzkuma:跟我一樣的錯耶(握手) 是base的funct第二個括號漏參數 10/08 22:54
→ vincere:感謝~ 剛一直很不確定constructor是要從哪裡呼叫 10/08 22:55
→ nfprzkuma:base和derived的virtual func prototype要一模一樣 10/08 22:55
→ nfprzkuma:包括參數列表 10/08 22:56
→ djshen:Compare沒寫參數應該是會出現abstract class之類的吧? 10/08 22:57
推 nfprzkuma:abstract class是因為加上"=0" 代表pure virtual func 10/08 23:00
→ nfprzkuma:class中只要有任何func是pure virtual func該class就是 10/08 23:00
→ nfprzkuma:abstract class 10/08 23:01
→ djshen:Compare沒寫參數但Less有寫 兩個是不一樣的函數 所以Less 10/08 23:02
→ djshen:會不能產生object 10/08 23:02
→ vincere:想要請教一下 如果是第一個括號呼叫constructor的話 不是 10/08 23:04
→ vincere:很清楚說參數是放在第二個括號裡 10/08 23:04
推 nfprzkuma:恩 樓上講得有道理 10/08 23:05
→ nfprzkuma:說錯了是樓樓上 樓上是在問程式哪邊呼叫ctor? 10/08 23:07
→ djshen:我試不出原PO那種錯誤訊息耶.. 10/08 23:15
→ vincere:我是想問說她的construtor是從第一個括號呼叫 然後參數再 10/08 23:18
→ vincere:由第二個傳入? 10/08 23:18
→ vincere:回樓上 第一個問題解決了 可是還是會出現no matching 10/08 23:19
推 nfprzkuma:真的嗎 我只要把()裡的參數列表刪掉 就會看到41行 10/08 23:19
→ nfprzkuma:no match for call to '(const Compare)(int&..... 10/08 23:19
→ vincere:function to call to 'Less::Less()' 10/08 23:19
推 ric2k1:說明白一點,Compare 的 operator () 應該要定義成: 10/08 23:21
→ ric2k1:bool operator () (int, int) const = 0; 10/08 23:21
→ ric2k1:你應該是忘了加參數... 10/08 23:22
→ nfprzkuma:如果是在問Less()的話 應該不需要參數吧 事實上Less沒有 10/08 23:22
→ nfprzkuma:寫constructor的必要 10/08 23:22
推 ric2k1:嗯,constructor 應該是沒有參數。但是應該可以不用寫 10/08 23:22
推 ric2k1:constructor 吧! 10/08 23:23
→ ric2k1:反正也沒有 data members, 寫 constructor 也沒有意義。 10/08 23:23
→ djshen:constructor可寫可不寫 試過了 10/08 23:25
→ vincere:感謝大家的解惑 問題終於解決了 小弟class觀念太薄弱 10/08 23:54
推 ric2k1:沒問題,下星期三大家一起來好好複習一下 class!! 10/08 23:55