기본 매개변수

기본 매개변수

호출자가 값을 생략하면 선언에 적힌 기본값이 사용되며, 오버로딩과 함께 설계할 때 모호성을 조심해야 합니다.

기본값

생략 시 사용할 값

반복되는 인자를 선언부의 기본 동작으로 옮겨 호출부의 의도를 더 잘 보이게 합니다.

void log(int level=1)
선언

한곳에만 기본값 작성

원형과 정의를 분리할 때 기본값은 보통 선언부에 둡니다.

prototype default
호출

앞 인자는 건너뛸 수 없음

중간 인자만 생략하는 방식은 일반 함수 호출에서 허용되지 않습니다.

f(10)
오버로드

후보가 겹칠 수 있음

기본값 때문에 인자 개수가 같아지면 어떤 함수를 부를지 모호해질 수 있습니다.

f() conflict
기본 의미생략했을 때 가장 흔하고 안전한 동작인지 확인합니다.
변경 영향기본값 변경은 호출 코드를 바꾸지 않아도 동작을 바꿀 수 있습니다.
오버로드 비교기본 매개변수와 오버로드 중 어느 쪽이 호출 의도를 더 잘 드러내는지 선택합니다.