해결된 질문
작성
·
204
0
Position& operator++()
{
_x++;
_y++;
return *this;
}
질문1)
제가 이해하기로는 Position&이 리턴이면 resturn *this에서
*this가 실제로 존재하는 메모리상에서 꺼내와서 쇽 넘기는거고
Position으로 리턴하면 실제값을 복사해놓고 복사된 값을 넘겨주는거다 라고 생각이 드는데
여기서 리턴타입이Position& 일때와 Position일때 와의 차이가 성능? 말고 또 존재하는게있나요?
자기자신 참조라는게 어감때문인지 Position&과 Position의 디테일한 차이를 잘 모르겠습니다.
질문2)
연산자 오버로딩 중에 무조건 리턴타입이 참조자리턴이어야하는 경우가 있나요?
답변 1
0
실제 자신을 참조로 반환하면,
연달아 이어서 ++을 해줄 수 있습니다.
ex)
int a = 0;
++(++a);
보통 (a++)++; 이건 안 되고 ++(++a); 는 되게 만듭니다.
자기자신을 리턴하면서 동시에 연산을 이어서 할 때 그런것 같은데 좀더 많이 써보면서 공부해봐야겠네요
감사합니다!