看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) gcc 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) STL 問題(Question): 程式在下面連結 最近在學習STL,看到書上面有一個範例 雖然照著打程式是沒甚麼問題啦 但是有一點想不懂下面這一句 int operator()() {++i;return i*i;} 我想請問為什麼會有兩組() ? 我一開始猜第一個()是operator overloading 但是若是opeartor overloading的話我把它換成其他的operator程式應該也可以過吧 於是我把這一句改成int operator[]() {...;} 然後下面改成generate( ... , ... ,calc_square[]); 結果compile就不給過了 所以就想不通了 所以想請問有沒有大大可以解釋一下為什麼會有兩組()? 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/pZMqFh8r -- ────╮ ╮ ╮╭──┬╭─┬─╯┬── ──╮ ╭╯ │ ││ │ 幹!考試讀不完! /\ <●╰────┼──┤├──┤ ├─★黑特嗎? φ /> │ ││ │ │ ╭───╮ /| ╰ ╰╯ ╰ ╰──╯ ╭╯ ﹀\﹀ 臣亮言:先帝創業未半,而中道崩殂。今天下... ξwinken2004╰────────/\─╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.69.60
wtvwtvwtv200:Function Call Operator 02/20 00:27
wtvwtvwtv200:簡單來說就是讓class變得像函數一樣可呼叫, 02/20 00:28
wtvwtvwtv200:詳細我不太懂,不過這東西通常拿來當stl的參數 02/20 00:29
hilorrk:因為 operator[] 跟 operator() 的參數不同 02/20 00:32
winken2004:簡單來說就是背起來嗎?? 02/20 00:50
leiyan:好像是class的無參數func都會被做延伸運算? 02/20 01:22
kwpn:第一個()是跟operator一起的,表示這是個function call opera 02/20 20:31
kwpn:tor,第二個()是使用這個operator函式要傳入的參數 02/20 20:32