default argument

기본값은 편의지만 후보가 둘이면 오류가 된다

기본 매개변수와 오버로딩을 함께 쓸 때는 호출 하나가 정확히 하나의 함수로 좁혀지는지 확인해야 합니다.

점검 순서

compile time
void f(int, int = 0)

기본값 위치

기본값은 보통 선언에 한 번만 둡니다.

f(10)

생략 후 모양

호출자가 뺀 인자는 컴파일러가 기본값으로 채웁니다.

void f(int)

후보 겹침

같은 호출을 받을 함수가 또 있으면 모호합니다.

f(10, 0)

명시 호출

의도가 갈리면 인자를 모두 적어 후보를 하나로 줄입니다.

call defaults candidates unique

기본값·오버로드 충돌 기본값은 호출 편의를 위한 장치입니다. 같은 이름의 오버로드가 생략 호출을 함께 받을 수 있다면 API를 나누거나 호출부를 명시적으로 만듭니다.