함수 정의에서 선언된 매개변수
- 원칙적으로는 호출 시에 값을 전달
- 전달되는 값은 동일한 자료형
void sub(double value);
- 위의 예시는 함수 원형이 선언된 sub()함수 이다. sub()함수는 double값을 호출함수가 전달해야함
- sub()에 전달되는 인자가 double형이 아니면 컴파일 에러발생
- [C++] 인수 전달하지 않아도 디폴트값을 대신 넣어주는 기능 존재
: default parameter (디폴트 매개변수)
void sub(double value = 1.0); //함수 원형 정의
- 위의 예시의 경우, sub()에 인수가 주어지지 않으면 매개변수는 1.0이라는 디폴트 값을 가지게 됨
- 디폴트 매개변수는 원형에서만 정의됨(함수 정의 시 디폴트값 표시 X)
- 디폴트 매개변수는 반드시 오른쪽 매개변수에서부터 시작하여서 왼쪽으로 진행하면서 정의해야함
: 함수 호출 시, 반드시 첫번째 인수부터 값을 주어야하기 때문
void func(int p1, int p2, int p3=30); //OK
void func(int p1, int p2=20, int p3=30); //OK
void func(int p1=40, int p2=20, int p3=30); //OK
void func(int p1=40, int p2, int p3); //컴파일 에러
void func(int p1=40, int p2=20, int p3); //컴파일 에러
<디폴트 매개변수의 예>
#include <iostream>
using namespace std;
int calc_deposit(int salary = 300, int month = 12); //default parameter
int main() {
cout << "0개의 디폴트 매개 변수 사용" << endl;
cout << calc_deposit(200, 6) << endl; //1200
cout << "1개의 디폴트 매개 변수 사용" << endl;
cout << calc_deposit(200) << endl; //2400
cout << "0개의 디폴트 매개 변수 사용" << endl;
cout << calc_deposit() << endl; //3600
return 0;
}
int calc_deposit(int salary, int month) {
return salary * month;
}
'Computer Science > Programming Language' 카테고리의 다른 글
[C/C++] 동적 메모리 할당(dynamic memory allocation) (0) | 2020.06.12 |
---|---|
[C/C++] 변수 (지역변수, 전역변수) (0) | 2020.06.10 |
[JAVA] 데이터타입 - 참조 타입 (0) | 2020.06.04 |
[JAVA] break문 사용 (0) | 2020.06.01 |
[JAVA] 키보드로부터 입력받기 (0) | 2020.06.01 |