C/C++ 언어 코딩 복습 - 함수 4 (Default
argument or default parameter)
-
앞에서는 함수의 오버로딩
(Overloading) 에 대해 정리해 보았습니다. C++
함수의 특징으로 Default argument 혹은 default parameter 에 대해 살펴보겠습니다.
- 함수를 호출할 때는 보통 인자의 개수에 맞추어 호출 합니다. 그러나 default
parameter 를 사용하여 인수의 개수를 다르게 주어 호출할 수도 있습니다.
- 예제를 통해 알아보겠습니다.
예제코드
#include <iostream>
using namespace std;
void tDP(int a = 1, int b = 10, int c = 100);
int main() {
cout << endl;
cout
<< "##############################" << endl;
cout << " Default parameter example
" << endl;
cout
<< "##############################" << endl;
cout
<< endl;
cout
<< " No parameters " << endl ;
tDP();
cout << " 1 parameter "
<< endl ;
tDP(3);
cout
<< " 2 parameters " << endl ;
tDP(3,30);
cout << " 3 parameters "
<< endl ;
tDP(3,30,300);
return 0;
}
void tDP(int a, int b, int c){
cout
<< " a = " << a << ", b = " << b
<< ", c = " << c << endl;
cout
<< endl;
}
- 정수형 인자 세 개를 갖고 반환값이 없는 함수 ' tDP' 를 정의하였습니다. 함수 선언부에서 정수형 변수 a, b, c 에 각각 1, 10, 100 이라는 default 값을 주었습니다. 함수의 정의부에서는 인자로 받은 a, b, c 값이 출력되도록 하였습니다.
- " No parameters " 라는 출력문 다음에 ' tDP()' 이라는 형태로 함수를 호출하였습니다. 그 다음 인자를 하나씩 늘려 함수를 호출하여 보도록 하겠습니다. 그리고 마지막에는 " 3 parameters " 라는 출력문 다음 ' tDP(3,30,300)' 함수를 호출하였습니다. 결과가 확인해보겠습니다.
실행결과
- 먼저 " Default parameter example " 라는 문구가 출력됩니다.
(1) " No parameters " : 인자를 주지 않고 호출한 경우 (tDP()), default 로 설정한 값들이 출력됨을 알 수 있습니다.
(2) " 1 parameter " : 인자를 하나만 주고 호출한 경우 (tDP(3)), 첫번째 인자 a 의 값이 3으로 바뀌어 출력되는 것을 알 수 있습니다. 이때 나머지 값들은 default로 지정한 값이 출력됩니다. ("b = 10, c = 100")
(3) " 2 parameters " : 인자를 두개 주고 호출한 경우 (tDP(3,30)), 첫번째 인자 a 의 값이 3으로 b 의 값이 30으로 바뀌어 출력되는 것을 알 수 있습니다. 나머지 c 의 값은 default로 지정한 100 이 출력됩니다.
(4) " 3 parameters " : 인자 세개를 주고 호출한 경우 (tDP(3,30,300)), default 값이 아닌 입력한 값으로 출력되는 것을 알 수 있습니다.
주의:
1. default parameter 의 값은 함수의 선언부에서 지정.
2.
함수 인자부분에서 모두
default 값을 주거나, 오른쪽에서 왼쪽으로 순차적으로 입력.
ex) void aaa(int a=1, int b=2, int c=3); (O)
void
aaa(int a, int b=2, int c=3); (O)
void
aaa(int a=1, int b, int c); (X)
void
aaa(int a, int b=2, int c); (X)