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 に答える