별의 공부 블로그 🧑🏻‍💻
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
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖