作者t27935912 (david)
看板EE_DSnP
標題[討論] 一個小問題
時間Tue Dec 6 20:58:48 2011
這是我的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
1F:→ djshen:it._node跟x的型態? 12/06 21:11
2F:推 wmin0:_node是T* x是T 12/06 21:13
3F:推 timrau:T*和iterator沒辦法比較啊。也許該 12/06 21:38
4F:→ timrau:if(i._node == _node)之類的 12/06 21:39
5F:→ t27935912:感謝!!!! 12/06 22:12