• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

[3:25] 함수 오버로딩 더미 변수

23.10.29 11:05 작성 조회수 147

2

operator ++ 를 오버로딩하는 구문이 두 군데가 있어서, ambiguity가 발생하기 때문에, 이를 구분하고자 dummy parameter, int를 넣은 것이다, 정도로 이해하였습니다.

그럼 실제 main 함수에서, 컴파일러는 어떻게 d++ 이 postfix overloading(line 19 ~ 24)에 해당하는지 알아낼 수 있나요? 반대로 ++d가 line 19 ~ 24로 가는 것이 아니고, line 12 ~ 16으로 가야 하는지 어떻게 알아내나요?

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.10.30

안녕하세요, 답변 도우미 Soobak 입니다.

 

컴파일러는 함수의 이름, 매개변수의 개수, 매개변수의 자료형 등으로 함수를 구분합니다.
이러한 구분과 연산자의 위치를 바탕으로 컴파일러가 opeartor ++ 의 적절한 오버로딩을 결정합니다.

전위 증가 연산자 (prefix) 는 인자를 취하지 않고, 후위 증가 연산자 (postfix) 는 더미 인자를 받으므로,
이를 통하여 적절한 오버로딩 함수를 결정합니다.

예를 들어, ++d 와 같은 전위 증가 연산자의 경우, 인자가 없는 operator ++ 함수를 호출하고,
d++ 와 같은 후위 증가 연산자의 경우, 더미 인자가 있는 operator ++ 함수를 호출합니다.