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

Windfall님의 프로필 이미지
Windfall

작성한 질문수

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

연산자 오버로딩 #2

참조자 리턴 질문입니다.

해결된 질문

작성

·

204

0

Position& operator++()

{

_x++;

_y++;

return *this;

}

 

질문1)

제가 이해하기로는 Position&이 리턴이면 resturn *this에서

*this가 실제로 존재하는 메모리상에서 꺼내와서 쇽 넘기는거고

Position으로 리턴하면 실제값을 복사해놓고 복사된 값을 넘겨주는거다 라고 생각이 드는데

여기서 리턴타입이Position& 일때와 Position일때 와의 차이가 성능? 말고 또 존재하는게있나요?

자기자신 참조라는게 어감때문인지 Position&과 Position의 디테일한 차이를 잘 모르겠습니다. 

질문2)

연산자 오버로딩 중에 무조건 리턴타입이 참조자리턴이어야하는 경우가 있나요?

답변 1

0

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

실제 자신을 참조로 반환하면,
연달아 이어서 ++을 해줄 수 있습니다.

ex)
int a = 0;
++(++a);

보통 (a++)++;  이건 안 되고 ++(++a); 는 되게 만듭니다.


Windfall님의 프로필 이미지
Windfall
질문자

자기자신을 리턴하면서 동시에 연산을 이어서 할 때 그런것 같은데 좀더 많이 써보면서 공부해봐야겠네요
감사합니다!

Windfall님의 프로필 이미지
Windfall

작성한 질문수

질문하기