강의

멘토링

커뮤니티

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

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

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

문법 관련 질문

해결된 질문

작성

·

128

0

iterator 부분에서
iterator erase(iterator it)
{ Node<T>* node = RemoveNode(it._node);
return iterator(node); }


return iterator(node);
이 부분이 헷갈립니다
iterator ( ) 이게 뭔가 문법적으로 뜻이 있었는데 기억이 잘 나지 않습니다. 형변환으로 쓰신 건가요?
형변환이 맞다면 형변환을 통해 노드의 주소를 가리키고 있는 포인터를 반환해준다고 생각하면 되는 것인가요?



예를 들어
class Knight
{
}
Knight 클래스가 있을시
Knight A;
Knight A(3,5);(생성자가 정의되어 있을 시)
하면 Knight의 객체 A를 찍는 것이지만
Knight(A)하면 무슨 뜻인가요?

답변 1

1

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

Knight A(3,5);와 비슷하게 Knight(3,5)로 바로 만들어준 것이고 참고로 Knight(A)가 아닙니다.
어셈으로 까보면 Knight A(3,5)와 Knight(3,5) 둘이 하는 일은 다르지도 않고
다만 A로 해당 객체를 다시 접근할 수 있는지의 차이가 생깁니다.
즉 Knight 생성자를 호출해서 객체를 만들어주는 것도 동일합니다.
이 부분은 breakpoint를 f11로 타고 들어가보시면 됩니다.

객체 생성을 해주신 거군요

답변 감사합니다!

움직이는YM님의 프로필 이미지
움직이는YM

작성한 질문수

질문하기