default arguments

기본 매개변수는 생략한 인자를 선언의 기본값으로 채운다

비슷한 오버로드를 여러 개 만들지 않고, 선택적인 값만 기본값으로 두어 호출을 짧게 만들 수 있습니다.

void printMessage(const string& msg, int count = 1);
인자 생략printMessage("Hi");

count는 기본값 1로 채워집니다.

인자 지정printMessage("Hi", 3);

직접 넘긴 3이 기본값보다 우선합니다.

중복 감소printOnce() 대신 한 함수로 처리

같은 동작의 작은 변형을 하나의 선언으로 묶습니다.

호출자는 짧게자주 쓰는 값은 생략할 수 있습니다.
선언은 더 중요하게기본값이 API 의미와 호출 해석에 직접 들어갑니다.
핵심: 기본값은 함수 안에서 자동으로 생기는 값이 아니라 호출을 해석할 때 선언에서 가져오는 값입니다.