Default Arguments

기본 매개변수 배치 기준

기본 매개변수는 호출을 짧게 해 주지만, 선언 규칙을 어기거나 오버로딩과 겹치면 컴파일러가 호출 대상을 고르기 어려워집니다.

방향 오른쪽 매개변수부터 기본값 지정
위치 보통 함수 원형에 한 번만 작성
충돌 오버로드와 같은 호출 형태 금지
모두 생략 가능

뒤쪽 값은 기본값 사용

printData(10);

separator와 repeat은 선언에 적힌 기본값으로 채워집니다.

중간까지만 지정

왼쪽부터 직접 전달

printData(20, '*');

앞쪽 인자를 건너뛰고 뒤쪽만 지정하는 호출은 만들 수 없습니다.

모두 명시

기본값은 무시됨

printData(30, '#', 5);

호출자가 넘긴 값이 있으면 기본값보다 명시 인자가 우선합니다.

before declaration

기본값을 붙이기 전 점검 순서

필수 인자 분리

호출마다 꼭 필요한 값은 왼쪽에 둡니다.

선택 인자 정렬

생략 가능한 값은 오른쪽으로 모읍니다.

선언 위치 통일

원형과 정의에 기본값을 중복 작성하지 않습니다.

오버로드 확인

생략 후 남는 호출 모양이 다른 함수와 겹치지 않아야 합니다.