컴파일러는 호출 인자를 보고 가장 잘 맞는 후보를 고른다
같은 이름의 함수가 여러 개 있어도, 인자의 타입과 개수가 다르면 호출 대상이 자연스럽게 좁혀집니다.
add(5, 7)→
int add(int, int)정수 두 개가 정확히 일치합니다.
add(3.5, 2.1)→
double add(double, double)실수 두 개가 double 후보와 맞습니다.
add(1, 2, 3)→
int add(int, int, int)인자 개수가 세 개인 후보만 남습니다.
add("Hello", "World")→
string add(string, string)문자열 결합 후보가 선택됩니다.
1. 이름 일치
add라는 후보들을 모읍니다.2. 인자 비교개수와 타입으로 호출 가능한 후보만 남깁니다.
3. 최적 선택정확히 맞는 후보가 있으면 그 함수로 연결합니다.