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

작성자 없음

작성자 정보가 삭제된 글입니다.

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part3: 자료구조와 알고리즘

연결 리스트 구현 연습

질문이있습니다.

작성

·

178

0

질문1.

c++ 강의를 들을때 this가 자기 자신이라서, 
자기자신의 주소를 반환할때 *this로 가능했는데

Iterator의 연산자 오버로딩++을 구현하실 때 

return _node와
return *this는 동일한 기능인가요?

 

질문2.

연산자 오버로딩 ++it을 할때 
Iterator& operator++()은  위치오른쪽에++이 되는 것아닌가요? 
연산자를 앞에 위치할 때는 전역으로 빼서 구현을 한 것같아서 질문드립니다.

 

답변 1

1

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

1.

this는 Iterator<T>타입의 포인터 (현재 객체의 주소)이구요.
*this는 주소라기 보다는, 해당 포인터를 역참조한 것이라고 생각하시면 됩니다.

이해를 돕기 위해 Iterator<T>* this; 라는 가상의 변수로 생각하면
*this 는 Iterator<T> 타입이 되는 것이고,

Iterator<T>& a = *this; 이렇게 하면 참조값 (내부적으로 주소)이 되겠지만
Iterator<T> b = *this; 이렇게 하면 복사가 되겠죠.

2.
좋은 질문이지만, 프로그래머는 어지간한 지식은 혼자 찾아내야 합니다.
구글에 operator++()를 검색해서 스스로 답을 찾으시기 바랍니다.
(1분 내로 결과를 얻으실 수 있을거에요)

찾았네요 감사합니다

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기