함수 오버로딩

함수 오버로딩 문법

동일한 개념의 동작을 타입이나 개수에 따라 나누면 호출 코드는 자연스럽지만 모호성은 조심해야 합니다.

이름 공유

같은 의미를 한 이름으로

print(int)와 print(string)은 출력이라는 같은 개념을 호출 위치에서 유지합니다.

print(x)
시그니처

매개변수 목록으로 구분

컴파일러는 호출 인자의 타입과 개수를 보고 가장 알맞은 함수를 찾습니다.

(int,double)
해석

가장 좋은 후보 선택

정확히 맞는 함수가 우선이고 변환이 필요한 후보가 여러 개면 모호해질 수 있습니다.

overload resolution
함수 오버로딩 문법 한계

main과 반환 타입

main은 오버로딩할 수 없고 반환 타입만 다른 함수도 호출만으로 구분할 수 없습니다.

return only no
필요성같은 작업을 타입별로 다른 이름으로 늘리는 대신 하나의 의미 있는 이름을 유지합니다.
모호성정수와 실수 변환 후보가 동시에 가능하면 컴파일러가 선택하지 못할 수 있습니다.
이름 맹글링컴파일러는 내부적으로 매개변수 정보를 이름에 섞어 각 함수를 구분합니다.