LANG/C++

[C++]01-3.매개변수의 디폴트 값

혀니리리 2023. 5. 11. 12:46
728x90

디폴트 값: 기본적으로 설정되어있는 값

int MyFuncOne(int num = 7)
{
	return num + 1;
}
함수 호출 시 인자를 전달하지 않으면 7이 전달된 것으로 간주하겠다.
MyFuncOne() == MyFuncOne(7)

int MyFuncTwo(int num1 = 5, int num2 = 7)
{
	return num1 + num2;
}
함수 호출 시 인자를 전달하지 않으면 num1 = 5, num2 = 7이 전달된 것으로 간주하겠다.

위 코드로 알 수 있는 것:

"매개변수에 디폴트 값이 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자전달이 가능하다.

그리고 전달되는 인자는 왼쪽에서부터 채워져 나가고, 부족분은 디폴트 값으로 채워진다."

 

1.디폴트 값은 함수의 선언 부분에만 표현하면 됨

요렇게

위 코드에서 맨 윗줄이 함수의 선언, 아랫줄은 함수의 정의이다.

 

2.부분적 디폴트값 설정

반드시 왼쪽부터 매개변수 값이 채워져있는 형태여야 함!

int YourFunc(int num1, int num2, int num3 = 30) { . . . } (0)
int WrongFunc(int num1 = 10, int num2, int num3) {. . .} (X)

//이유: 함수에 전달되는 인자는 왼쪽에서부터 오른쪽으로 채워지기 때문!

 

필요성: 함수 오버로딩과 달리 여러 형태를 만들 필요 없이도 함수 호출 시 매개변수의 개수를 자유롭게 쓸 수 있고, 굳이 값을 넣어놔도 디폴트값이 있으니 중복코드를 줄일 수 있어 간편할듯 

 

728x90