[討論] 一個小問題

看板EE_DSnP作者 (david)時間12年前 (2011/12/06 20:58), 編輯推噓2(203)
留言5則, 4人參與, 最新討論串2/2 (看更多)
這是我的operator overload == bool operator == (const iterator& i) const { if(i._node == (*this)) return true; else return false; } 這是我的erase部分 bool erase(const T&x) { for(size_t i=0; i<_size; i++) { iterator it; it++; if(it._node == x) { iterator it(T* ptr); return true; } } return false; } compile後出現以下error In file included from adtTest.h:42, from adtTest.cpp:10: ../../include/array.h: In member function ‘bool Array<T>::erase(const T&) [with T = AdtTestObj]’: adtTest.h:90: instantiated from here ../../include/array.h:149: error: no match for ‘operator==’ in ‘it.Array<AdtTestObj>::iterator::_node == x’ make[1]: *** [adtTest.o] Error 1 make: *** [main] Error 2 不知道是為何 請大家幫忙一下 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.160.233.128

12/06 21:11, , 1F
it._node跟x的型態?
12/06 21:11, 1F

12/06 21:13, , 2F
_node是T* x是T
12/06 21:13, 2F

12/06 21:38, , 3F
T*和iterator沒辦法比較啊。也許該
12/06 21:38, 3F

12/06 21:39, , 4F
if(i._node == _node)之類的
12/06 21:39, 4F

12/06 22:12, , 5F
感謝!!!!
12/06 22:12, 5F
文章代碼(AID): #1EtX6BUR (EE_DSnP)
文章代碼(AID): #1EtX6BUR (EE_DSnP)