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