作者takua624 (TAKUA)
看板EE_DSnP
標題[問題] 搞不懂怎麼用operator()
時間Tue Oct 4 11:42:35 2011
真的弄不懂這東西要怎麼用耶
我照著計程課本把Compare底下的operator()弄成pure virtual
然後在Less裡面也弄了一個operator()
可是在需要用到Less()的時候,g++就跑出這樣的警告:
cannot allocate an object of abstract type ‘Less’
because the following virtual functions are pure within ‘Less’:
virtual void Compare::operator()() const
這到底是什麼意思啊?
看過上面的討論串,還是不知道operator()到底是用在什麼場合的
它是某種constructor嗎?
--
春
苑樹雪菜萌苗,
雀兒喜上夏枝梢;
藍眼望盡
黃泉路,只盼儷人一
美笑。
長巾初解投送抱,金
珠麗葉賀新好;
神代仙眷且羨嫉,長伴相隨誓到老。
靜馬千華留秋晚,冬風不止
三鄉道;
紅枝立約攜手情,今此空餘泣嚎啕。
姬宮千歌音悠悠,
櫻井奏樂聲裊裊;奈何天令伊人變,
飛離斯愛離斯去。
結城AIRA→ 悲慟獨泣無人應,
白晝夢盡皆空語。
←美鄉あき
Kalafina→ 紅月旋響戚
音樂,黯然步上
鎮魂旅。
←飛 蘭
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.147.96
1F:→ takua624:不清楚Less這個type哪裡abstract了,明明是繼承Compare 10/04 11:45
2F:→ takua624:的啊...怎麼會因為Compare有一個pure virtual function就 10/04 11:46
3F:→ takua624:變成不能用了咧? 10/04 11:46
4F:→ djshen:Less的operator()有加const? 10/04 12:10
5F:推 andy801110:你有寫operator()() 的函式內容了嗎? 10/04 13:17
6F:→ andy801110:等等 你呼叫的時候該不會是: Less(); 吧? 10/04 13:23
7F:推 simpdanny:Lest()()? 10/04 13:41
8F:推 wmin0:可以麻煩你把Compare和Less的code貼一下嗎 或者站內信 10/04 13:51
9F:推 wmin0:看起來像是Less沒有override Compare的那個pure virtual 10/04 14:02
10F:→ e124553423:繼承後Less/Greater要把operator的內容定義才能用 10/04 16:11
11F:→ e124553423:不知道是不是沒override? 10/04 16:12
12F:推 ric2k1:宣告一個 pure virtual function: 10/04 16:38
13F:→ ric2k1:void Compare::operator()() const = 0; 10/04 16:38
14F:→ ric2k1:virtual void Compare::operator()() const = 0; 10/04 16:39
15F:推 ric2k1:應該要加 virtual, 上上一行貼錯... 10/04 16:39
16F:→ takua624:這個我有在計程課本上看到,不過還是感謝教授囉~! 10/04 22:49