如何重载嵌套类的运算符?

时间:2012-11-05 22:45:59

标签: c++

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

这就是我的代码

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

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

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

任何人都可以澄清吗?

3 个答案:

答案 0 :(得分:9)

为了澄清,你的想法是正确的,但你忘了在函数声明中有一个返回类型:

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

需要

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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