🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

operator+ 함수 질문

21.09.14 22:36 작성 조회수 218

1

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

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

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

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

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

밖에서는 pos를

pos._x = 0;

pos._y = 0;

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

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

답변 2

·

답변을 작성해보세요.

0

Windfall님의 프로필

Windfall

질문자

2021.09.15

감사합니다!

0

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

채널톡 아이콘