我在C 项目中超载了增量运算符,但是当我尝试调用它时,找不到过载功能。
TListIterator< T > & operator ++( void )
{
TListElement< T > *pNext = pCurrent->getNext();
if( pCurrent && pNext )
this->pCurrent = pNext;
return *this;
}
我尝试像这样说:
(*it)++;
超载方法是" tlistiterator"类的一部分,它是指向tlistiterator的指针。
我收到的错误是:
Error C2676 binary '++': 'TListIterator<T>' does not define this operator or a conversion to a type acceptable to the predefined operator
编辑向将我的问题标记为您将我链接给我的问题的人解释:
另一篇文章直接询问您如何区分收入后和提交前的超负荷,因为我不知道我的呼叫不起作用的原因是由于使错误的操作员超载使我的问题完全不同。
超载增量运算符时,只有两种方法。因此,尝试定义您的功能如下:
TListIterator< T > & operator ++()
或
TListIterator< T > & operator ++(int)
其中第一个前缀和后缀的第二个。