오버로드 해석은 후보를 모으고 하나로 좁히는 과정이다
컴파일러는 이름이 같은 후보를 모두 본 뒤, 호출 가능한 함수만 남기고 변환 비용이 가장 낮은 하나를 선택합니다.
01후보 수집
이름이 같은 함수 선언을 모두 모읍니다.
02호출 가능 필터
인자 개수와 기본 변환으로 부를 수 있는 후보만 남깁니다.
03순위 비교
정확한 일치와 변환 비용을 비교합니다.
04하나 선택
최적 후보가 하나면 호출하고, 둘 이상이면 오류입니다.
정확한 일치타입이 그대로 맞아 가장 우선합니다.
승격/변환
char에서 int, int에서 double처럼 비용이 듭니다.모호성비슷하게 좋은 후보가 둘 이상이면 컴파일 오류가 납니다.
핵심: 오버로드 해석은 “될 수 있는 후보”가 아니라 “가장 좋은 후보 하나”를 찾아야 성공합니다.