[C++] 01 - 3 : 매개변수의 디폴트값(Default Value)
2023. 3. 13. 18:04ㆍChlln's Code/C++
매개변수에 설정하는 "디폴트값"의 의미
DefaultValue1.cpp
#include <iostream>
using namespace std;
int Adder(int num1 = 1, int num2 = 2) {
return num1 + num2;
}
int main(void) {
cout << Adder() << endl
<< Adder(5) << endl
<< Adder(3, 5) << endl;
return 0;
}
- 4행 : Adder 함수의 디폴트값으로 1과 2가 설정되었다.
- 9행 : Adder 함수를 호출하면서 인자를 전달하지 않았으니, 1과 2가 전달된 것으로 간주된다.
- 10행 : Adder 함수를 호출하면서 인자를 하나만 전달하고 있다.
이러한 경우 인자는 첫 번째 매개변수로 전달된다.
따라서 두 번째 매개변수 num2에는 2가 전달된 것으로 간주된다. - 11행 : Adder 함수를 호출하면서 두 개의 인자를 직접 전달하였다.
이러한 경우 매개변수의 디폴트값은 의미를 갖지 않는다.
출력 결과
3
7
8
디폴트값은 함수의 선언부에만 표현하면 됩니다.
DefaultValue2.cpp
#include <iostream>
using namespace std;
int Adder(int num1 = 1, int num2 = 2);
int main(void) {
cout << Adder() << endl
<< Adder(5) << endl
<< Adder(3, 5) << endl;
return 0;
}
int Adder(int num1 = 1, int num2 = 2) {
return num1 + num2;
}
출력 결과
3
7
8
부분적 디폴트값 설정
DefaultValue3.cpp
#include <iostream>
using namespace std;
int BoxVolume(int length, int width = 1, int height = 1);
int main(void) {
cout << "[3, 3, 3] : " << BoxVolume(3, 3, 3) << endl
<< "[5, 5, D] : " << BoxVolume(5, 5) << endl
<< "[7, D, D] : " << BoxVolume(7) << endl;
// cout << "[D, D, D] : " << BoxVolume() << endl;
return 0;
}
int BoxVolume(int length, int width, int height) {
return length * width * height;
}
- 4행 : 첫 번째 매개변수에는 디폴트값이 지정되지 않았으므로, BoxVolume 함수를 호출할 때는 반드시 하나 이상의 인자를 전달해야 한다.
- 7~9행 : 모두 유효한 함수 호출문이다.
전달되는 인자는 왼쪽에서부터 채워지고 부족한 부분은 디폴트값이 대신 전달된다. - 10행 : 모든 매개변수에 디폴트값이 지정된 것이 아니기 때문에, 인자를 전달하지 않는 형태의 함수 호출은 컴파일 에러로 이어진다.
출력 결과
[3, 3, 3] : 27
[5, 5, D] : 25
[7, D, D] : 7
'Chlln's Code > C++' 카테고리의 다른 글
[C++] 01 - 4 : 인라인(inline) 함수 (0) | 2023.03.13 |
---|---|
[C++] 문제 01 - 3 [매개변수의 디폴트값] (2) | 2023.03.13 |
[C++] 문제 01 - 2 [함수 오버로딩] (0) | 2023.03.13 |
[C++] 01 - 2 : 함수 오버로딩(Function Overloading) (0) | 2023.03.13 |
[C++] 문제 01 - 1 [C++ 기반의 데이터 입출력] (2) | 2023.03.13 |