작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
178
0
질문1.
c++ 강의를 들을때 this가 자기 자신이라서,
자기자신의 주소를 반환할때 *this로 가능했는데
Iterator의 연산자 오버로딩++을 구현하실 때
return _node와
return *this는 동일한 기능인가요?
질문2.
연산자 오버로딩 ++it을 할때
Iterator& operator++()은 위치오른쪽에++이 되는 것아닌가요?
연산자를 앞에 위치할 때는 전역으로 빼서 구현을 한 것같아서 질문드립니다.
답변 1
1
1.
this는 Iterator<T>타입의 포인터 (현재 객체의 주소)이구요.
*this는 주소라기 보다는, 해당 포인터를 역참조한 것이라고 생각하시면 됩니다.
이해를 돕기 위해 Iterator<T>* this; 라는 가상의 변수로 생각하면
*this 는 Iterator<T> 타입이 되는 것이고,
Iterator<T>& a = *this; 이렇게 하면 참조값 (내부적으로 주소)이 되겠지만
Iterator<T> b = *this; 이렇게 하면 복사가 되겠죠.
2.
좋은 질문이지만, 프로그래머는 어지간한 지식은 혼자 찾아내야 합니다.
구글에 operator++()를 검색해서 스스로 답을 찾으시기 바랍니다.
(1분 내로 결과를 얻으실 수 있을거에요)
찾았네요 감사합니다