作者CocoGrisp (快腿正姊摳摳李玟)
站內EE_DSnP
標題[問題] overloading *
時間Tue May 13 15:54:16 2008
想請問老師要我們 overload *
給了兩個形式
其中一個是 const method const T& operator * () const {}
另外一個是 T& operator * () {}
為什麼要兩種呢 ?
想不太出來會有哪兩種不一樣的情況呼叫到 "*"
如果只是 dereference 的話
應該都不會改到原本 iterator 的資料吧
煩請老師或同學們指點了
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.244.29
※ 編輯: CocoGrisp 來自: 140.112.244.29 (05/13 15:54)
1F:推 GriffeyKao:看起來一個是在左邊呼叫 另一個在右邊呼叫 05/13 16:13
2F:→ GriffeyKao:例如 int* p; int a = *p; *p = 10; 這樣不知對不對? 05/13 16:14
3F:推 bnsblue:茪W說得沒錯 05/13 17:26
4F:→ bnsblue:樓上↑XD怎麼會出現亂碼 05/13 17:27
5F:推 danielko:記得老師說const的version比較快? 05/13 17:30
6F:→ danielko:所以compiler在可以選的時候會先用 05/13 17:31
7F:→ CocoGrisp:thx ! 05/13 17:36