7

我正在编写一个链表,并且我的 List 类中有一个 Iterator 类。我想重载 = 运算符,但我不知道启动它的正确语法。

这就是我的代码中的内容

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

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

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

谁能澄清一下?

4

3 回答 3

9

澄清一下,您的想法是正确的,但是您忘记了在函数声明中包含返回类型:

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

需要是

List::Iterator& List::Iterator::operator=(const Iterator& right){
 //stuff
}
于 2012-11-05T22:51:19.160 回答
0
List::Iterator& List::Iterator::operator=(const Iterator& right) {...}
^^^^^^^^^^^^^^^
于 2012-11-05T22:51:50.707 回答
0
List::Iterator& List::Iterator::operator=(const List::Iterator& right)
{
    //...
}
于 2012-11-05T22:52:08.587 回答