함수의 디폴트 매개변수
C++에서는 함수의 매개변수를 디폴트(default) 값으로 지정할 수 있다. 디폴트 매개변수란 함수의 원형 선언 및 함수의 정의에서 매개변수에 값을 지정해 두는 것을 말한다. 함수의 매개변수를 디폴트 값으로 지정해 두면 함수 호출 시 매개변수 값을 넘겨주지 않아도 디폴트로 지정된 매개변수 값이 피 호출 함수로 넘어가게 된다.
예제 1
#include <iostream>
using namespace std;
void sub(int a = 10, int b = 20, int c = 30); //인수의 디폴트 값 지정
int main()
{
sub(); //매개변수 모두를 디폴트 값으로 지정
sub(5); //매개변수 b, c를 디폴트 값으로 지정
sub(5, 15); //매개변수 c를 디폴트 값으로 지정
sub(5, 15, 25); //디폴트 값 사용 안함
return 0;
}
void sub(int a, int b, int c) //함수의 정의
{
cout << "a=" <
결과
a=10,b=20,c=30
a=5,b=20,c=30
a=5,b=15,c=30
a=5,b=15,c=25
※ 함수를 main()함수 뒤에서 정의하는 경우, 함수의 원형을 선언해 두어야 한다. 이때 함수의 매개변수를 디폴트 값으로 지정하려면 함수의 원형 선언에서 매개변수를 디폴트 값으로 지정해야 한다.
※ main() 함수에서의 2번째 함수 호출문 sub(5);는 매개변수 a만 5로 피 호출 함수에 넘겨 준다. 따라서 인수 b와 c는 디폴트 값 20과 30이 피 호출 함수로 전달되기 때문에 sub(50;는 sub(5, 20, 30);와 동일하다.
예제 2
#include <iostream>
using namespace std;
void sub(int a = 10, int b = 20, int c = 30) //함수의 정의, 인수의 디폴트 값 지정
{
cout << "a=" << a << ",b=" << b << ",c=" << c << endl;
}
int main()
{
sub(); //매개변수 모두를 디폴트 값으로 지정
sub(5); //매개변수 b, c를 디폴트 값으로 지정
sub(5, 15); //매개변수 c를 디폴트 값으로 지정
sub(5, 15, 25); //디폴트 값 사용 안함
return 0;
}
결과
a=10,b=20,c=30
a=5,b=20,c=30
a=5,b=15,c=30
a=5,b=15,c=25
※ 함수를 main() 함수 앞에서 정의하는 경우, 함수의 원형을 선언할 필요가 없으며, 이때 함수의 매개변수를 지정해야 한다.
참고
1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
'C++ 기초 1' 카테고리의 다른 글
[C++] 1-13 스토리지 클래스 (auto, register, static, extern) (47) | 2023.11.22 |
---|---|
[C++] 1-12 함수의 지역 변수 / 전역 변수 설명 및 예제 (49) | 2023.11.21 |
[C++] 1-10 함수의 오버로딩 설명 및 조건 (49) | 2023.11.17 |
[C++] 1-9 인라인 함수 장점과 단점 (48) | 2023.11.16 |
[C++] 1-8 함수의 참조 전달 (참조자 매개변수) (47) | 2023.11.15 |