【发布时间】:2016-06-22 01:12:48
【问题描述】:
我在一个 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
编辑向将我的问题标记为与您链接我的问题重复的人解释:
另一篇文章直接询问您如何区分后增量和前增量重载,因为我不知道我的调用不起作用的原因是由于重载错误的运算符使我的问题完全不同。
【问题讨论】:
-
operator ++是否需要像operator++一样是一回事? -
没有空间不算数,尽管当我拉头发时,我确实尝试删除空间但无济于事。我会调查那个 tkausl
-
区分前置增量和后置增量。
-
哦,哇,Nicky C,你是我的救星;对于后增量,它需要一个虚拟的“int”才能工作,否则我会称之为 ++(*it);你想发表你的评论作为我标记正确的答案吗?
标签: c++ oop operator-overloading