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

Windfall님의 프로필 이미지
Windfall

작성한 질문수

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

연산자 오버로딩 #1

operator+ 함수 질문

작성

·

266

1

일반 함수에서는 덧셈을 할 때

함수에 인자 2개를 넣고 리턴시키는데

operator+는 const Position& arg로 인자가 하나잖아요

근데 어떻게 2개를 더한값이 리턴이 되나요?

operatro+안에있는 pos랑 main함수안에있는 pos랑 다른거아닌가요?

밖에서는 pos를

pos._x = 0;

pos._y = 0;

으로  초기화시켰는데 operator+안에서만든 임시객체 pos는

뭔값을 가지고있는지 모를거같은데 이 부분이 잘 이해가 안됩니다.

답변 2

0

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

감사합니다!

0

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

지금은 class Position 에 operator+가 정의되어 있다는 차이가 있습니다.
즉 일반 함수가 아닌 멤버 함수라는 것이죠.
말씀대로 '일반' 함수라면 덧셈을 할 때 함수에 인자 2개를 넣고 리턴시키지만,
멤버 함수는 그런 개념이 아니라, 첫번째 인자가 '숨겨져' 있고
그 '숨겨진' 인자는 무조건 해당 class로 만든 객체다! ~라고 생각하시면 됩니다.
멤버 함수 내에서는 멤버 변수에 자유롭게 접근할 수 있기에 (정확히 말하면 this 포인터로..)
pos._x나 pos._y에 접근할 수 있는 것입니다.

Windfall님의 프로필 이미지
Windfall

작성한 질문수

질문하기