다음을 통해 공유


기본 인수 식

기본 인수에 사용되는 식은 대개 상수 식이지만 이는 요구 사항이 아닙니다. 식은 현재 범위, 상수 식 및 전역 변수에서 볼 수 있는 함수를 결합할 수 있습니다. 식은 지역 변수 또는 비정적 클래스 멤버 변수를 포함할 수 없습니다. 다음 코드에서는 이를 보여 줍니다.

BOOL CreateVScrollBar( HWND hWnd, short nWidth =
GetSystemMetrics( SM_CXVSCROLL ) );

앞의 선언은 지정한 창 너비의 세로 스크롤 막대를 만드는 함수를 지정합니다. 너비 인수가 제공되지 않을 경우 스크롤 막대의 기본 너비를 찾기 위해 Windows API 함수인 GetSystemMetrics가 호출됩니다.

기본 식은 함수 호출 후 계산되지만 함수 호출이 실제로 발생하기 전에 계산이 완료됩니다.

함수에 대한 형식 인수가 함수 범위에 있고 기본 인수의 계산이 이 범위에 입력하기 전에 발생하기 때문에 기본 인수 식에서 형식 인수 또는 지역 변수를 사용할 수 없습니다.

기본 인수 식 앞에 선언된 모든 형식 인수가 함수 범위의 전역 이름을 숨길 수 있으며 이로 인해 오류가 발생할 수 있습니다. 다음 코드는 올바르지 않습니다.

const int Categories = 9;
void EnumCategories( char *Categories[], int n = Categories );

위 코드에서는 전역 이름인 Categories가 함수 범위에서 숨겨져 기본 인수 식이 무효화됩니다.

참고 항목

참조

기본 인수