ambiguity

기본값과 오버로딩이 같은 호출 형태를 만들면 모호해진다

기본 인자는 편리하지만, 오버로드 후보와 겹치면 컴파일러가 하나를 고를 근거가 사라집니다.

후보 Avoid greet(string name);
후보 Bvoid greet(string name, string salutation = "안녕");
greet("홍길동");
A도 가능인자 하나를 받는 함수와 정확히 맞습니다.
B도 가능두 번째 인자는 기본값으로 채울 수 있습니다.
결과둘 다 가능하므로 호출 대상이 모호합니다.
해결: 같은 호출 형태가 생기지 않도록 오버로드를 줄이거나, 호출 시 인자를 명시해 하나로 좁힙니다.