如何超载嵌套类的操作员

How to overload operator of a nested class?

本文关键字:嵌套 操作员 超载 何超载      更新时间:2023-10-16

我正在编写一个链接列表,并且我的列表类中有一个迭代器类。我想超载=运算符,但我不知道要启动它的正确语法。

这就是我在代码中拥有的

class List{
   //member stuff
   class Iterator{
       private: Node* current;
       public: Iterator& operator=(const Iterator& right);
       }
 }

我正在尝试这个,但我不确定这是正确的。

List::Iterator::operator=(const Iterator& right){
 //stuff
}

任何人都可以澄清吗?

要澄清,您的想法是正确的,但是您忘了在函数声明中具有返回类型:

List::Iterator::operator=(const Iterator& right){
 //stuff
}

需要

List::Iterator& List::Iterator::operator=(const Iterator& right){
 //stuff
}
List::Iterator& List::Iterator::operator=(const Iterator& right) {...}
^^^^^^^^^^^^^^^
List::Iterator& List::Iterator::operator=(const List::Iterator& right)
{
    //...
}