gpt4 book ai didi

C++:编译器看不到重载的运算符

转载 作者:行者123 更新时间:2023-11-30 01:23:07 25 4
gpt4 key购买 nike

我一直在尝试实现链表迭代器类。当我在这里使用重载的“!=”运算符时,编译器会报错:

for (itr = (test0.begin()); itr != (test0.end()); ++itr)
{
cout << *itr;
}

这里是错误:

error: no match for ‘operator!=’ in ‘itr != SinglyLinkedList<Object>::end() [with Object = int]()’

我不明白为什么它找不到匹配项,因为 test0.end() 和 itr 都是迭代器。

这里是重载运算符的代码:

bool operator!= (iterator &rhs)
{
return (this->current != rhs.current);
}

提前致谢。

最佳答案

我怀疑这是因为常量正确性:

bool operator!= (iterator const &rhs) const
{
return (this->current != rhs.current);
}

关于C++:编译器看不到重载的运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15362615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com