作者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