인프런 커뮤니티 질문&답변

정승우님의 프로필 이미지

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

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

21.12.15 12:27 작성

·

238

0

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

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

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

 

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

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

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

 

 

 

 

 

 

 

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2021. 12. 15. 19:36

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