반응형
디폴트 값이란
"기본적으로 설정되어 있는 값"을 의미한다.
함수 호출 시 파라미터(parameter)에 전달 될
아규먼트(argument)가 부족할 경우
대신해서 전달되는 값이기도 하다.
※ 아규먼트(argument, 인수) & 파라미터(parameter, 매개변수)
void sub(int a, int b, int c) // parameter
{
…
}
sub(5); // too few argument
함수 원형을 별도로 선언하는 경우
매개변수 디폴트 값은 함수의 원형선언에만 위치시켜야 한다.
또한, 우측 파라미터부터 정의해야 한다.
전달되는 인자는 왼쪽에서부터 채워지고
부족분은 디폴트 값으로 채워진다.
// 부분 정의도 가능
void sub(int a, int b = 10, int c = 20);
// 중간 또는 좌측 파라미터만 디폴트 파라미터를 사용할 수 없다.
sub(, , 5); // error
sub(4, , 5); // error
sub(5); // default parameter 10, 20
sub(5, 10); // default parameter 20
자주 사용되는 아규먼트 값인 경우
디폴트 파라미터로 호출 편의 제공
// cin.ignore(1);
cin.ignore();
함수를 중복정의 할 경우
모호한 호출 오류에 유의해야 한다.
void sub(int n = 5) { … }
void sub(void) { … }
예제 코드
#include <iostream>
using namespace std;
void DisplayDate(int day, int month, int year = 2022)
{
cout << year << "/" << month << "/" << day << endl;
}
void main()
{
DisplayDate(8, 5); // 2022/8/5
DisplayDate(8, 5, 2019); // 2019/8/5
}
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] 네임스페이스(namespace) 활용 (0) | 2022.08.09 |
---|---|
[C++] 인라인(inline) 함수 (0) | 2022.08.06 |
💻 함수 오버로딩(Overloading) (0) | 2022.08.03 |
[C++] [STL] next_permutation (0) | 2022.01.05 |
[C++] sort() 함수란? (0) | 2022.01.01 |
댓글