2012-11-05 3 views
6

링크 된 목록을 쓰고 있는데 List 클래스 내에 Iterator 클래스가 있습니다. = 연산자를 오버로드하고 싶지만 시작하는 데 올바른 구문을 모르겠습니다.중첩 클래스의 연산자를 오버로드하는 방법은 무엇입니까?

이것은 내가 내 코드

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

에 무엇을 가지고 나는이 노력하고 있지만, 나는이 올바른 여부 확실입니다.

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

누구든지 명확하게 할 수 있습니까?

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

확인 마이너스를 보이는

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

필요로 : – chris

답변

8

는 의견이 올바른지, 명확히하기 위해,하지만 당신은 함수 선언의 반환 형식이 깜빡 누락 된 리턴 유형 및 매개 변수 유형에 대한 결핍.
+0

감사! 이것은 내가 찾고 있었던 바로 그 것이다. – Instinct

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

유효하지만, function 매개 변수 유형은 이미'List :: Iterator' 클래스의 범위 내에 있습니다. – aschepler

관련 문제