기타 학습/Language
[C++] 매개변수 디폴트 값 (default vaule)
sdoaolo
2022. 5. 6. 18:36
728x90
매개변수 디폴트 값
C++ 함수에선 매개변수에 디폴트 값을 줄 수 있다.
함수 선언시에 매개변수 = 디폴트값 형식으로 쓰면 된다.
#include<iostream>
int sum(int a = 3, int b = 5){
return a+b;
}
using namespace std;
int main(){
cout << sum() << endl ; // 8
cout << sum(2,4) << '\n'; // 6
return 0;
}
default 값이 설정되어 있을땐
함수 호출에 아무런 매개변수가 없어도 디폴트값이 할당되어 함수가 작동한다.
부분적 디폴트 값 설정하기
- 모든 매개변수에 꼭 디폴트값을 설정할 필요는 없음
- 몇개에만 디폴트 설정하고 싶을 땐 오른쪽 매개변수부터 디폴트를 채우는 형식으로 사용해야함.
- 함수 전달 인자는 왼쪽부터 채워지기 때문이다.
#include<iostream>
int sum( int a; int b; int c = 10){
return a+b+c;
}
using namespace std;
int main(){
cout<< sum(2,5); // 2+5+10 == 17
cout<< sum(2,5,20); // 2+5+20 = 27
return 0;
}
만약 아래와 같은 경우이면
int test(){
return 5;
}
int test(int a = 5){
return a+1;
}
test();를 호출했을 때 둘다 호출될 가능성이 있기 떄문에 문제가 된다.