728x90
728x170
* 기본 인수 (Default Argument)
- 함수 프로토타입 선언 시 기본 인수(default argumet)를 지정하는 것이 일반적임.
- 기본 인수를 지정해 두면, 함수 호출시 실인수를 생략할 수 있다는 장점이 있음.
- 실인수를 생략하면 미리 지정해둔 기본값이 함수에 넘겨짐.
- 기본 인수를 지정한 함수 프로토타입 선언
리턴 값의 형(type) 함수명(형(type) 가인수명 = 기본값, ...); |
- 기본 인수는 함수 선언 혹은 함수 프로토타입 선언시 한 번만 지정함.
- 즉, 함수 프로토타입 선언에서 기본 인수를 지정했다면, 함수 본체를 정의할 때에는 기본 인수를 선언할 수 없음.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 |
#include <iostream>
using namespace std;
// buy 함수 선언
void buy(int x=10);
// buy 함수 호출
int main() {
cout << "처음 구매가는 100만원입니다. \n";
buy(100); // 호출할 때 인수를 넘김
cout << "두 번째 구매가는 기본가격입니다. \n";
buy(); // 호출할 때 인수를 넘기지 않음
return 0;
}
// buy 함수 정의
void buy(int x) {
cout << x << "만원 짜리 차량을 구입했습니다. \n";
}
// [출력 결과]
// 처음 구매가는 100만원입니다.
// 100만원 짜리 차량을 구입했습니다.
// 두 번째 구매가는 기본가격입니다.
// 10만원 짜리 차량을 구입했습니다. |
cs |
- 단, 인수가 여러 개 있는 경우에는 기본 인수는 오른쪽부터 순서에 맞추어 설정해야 한다.
- 인수의 기본값을 지정했다면 그 인수 뒤의 모든 인수에 기본 인수를 지정해야 함.
void func1(int a, int b, int c, int d = 2, int e = 10) (O)
void func1(int a, int b = 2, int c, int d, int e = 10) (X)
func1(10, 5, 20); // 인수 2개를 생략하고 호출. 결과적으로 인수 d는 2, e는 10으로 초기화 됨.
func1(10, 5, 20, 30); // 인수 1개를 생략하고(마지막 인수) 호출. 결과적으로 마지막 인수 e가 10으로 초기화 됨.
func1(10, 5, 20, 30, 50); // 모든 인수를 지정하고 호출
728x90
그리드형(광고전용)
'Programming > C++' 카테고리의 다른 글
C++ Character Literals (0) | 2017.09.02 |
---|---|
인수와 레퍼런스 (0) | 2017.05.30 |
함수 템플릿 (Function Template) (0) | 2017.05.29 |
함수 오버로드 (Function Overloading) (0) | 2017.05.25 |
인라인 함수 (Inline Function) (0) | 2017.05.25 |
const (0) | 2017.05.25 |
키보드 입력 (0) | 2017.05.25 |
숫자 리터럴 (Number Literal) (0) | 2017.05.25 |