• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

연산자 오버로딩 ++ 질문입니다.

21.12.15 12:27 작성 조회수 170

0

Iterator& operator++()
	{
		_ptr++;
		return *this;
	}

Iterator operator++(int)
	{
		Iterator temp = *this;
		_ptr++;
		return temp;
	}

넘겨주는 부분이 이해가 안돼서 질문드립니다.

 

전위형의 경우 return *this를 반환하고 후위형의경우에 temp에다가 *this를 넣은후 temp를 반환하는데

결국 둘의 반환타입이 같은거 아닌가요??..

근데 왜 전위형의경우에는 반환값이 Iterator의 참조값이고 후위형의 경우는 Iterator인가요?..

 

 

 

 

 

 

 

답변 1

답변을 작성해보세요.

1

보통 int a = 0;가 있을 때
++(++a)는 되지만 (a++)++은 되지 않습니다.
복사본을 반환하느냐, 자시 자신의 참조를 반환하느냐의 차이 때문에 생기는 것이죠.
참조본을 리턴하면 줄줄이 연속해서 또 같은 연산을 해줄 수가 있게 됩니다.