为什么找不到重载运算符函数?

Why isn't the overloaded operator function being found?

本文关键字:函数 运算符 重载 找不到 为什么      更新时间:2023-10-16

我在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)

其中第一个前缀和后缀的第二个。