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
'LANG > C++' 카테고리의 다른 글
[C++]02-1.Chapter 02의 시작에 앞서 (0) | 2023.05.11 |
---|---|
[C++] 01-5.이름공간(namespace)에 대한 소개 (2) | 2023.05.11 |
[C++] 01-4.인라인(inline) 함수 (0) | 2023.05.11 |
[C++] 01-2. 함수 오버로딩(Function Overloading) (0) | 2023.05.09 |
[C++] 01-1. printf와 scanf를 대신하는 입출력방식 (0) | 2023.05.09 |