관리 메뉴

JIE0025

[C++] 매개변수 디폴트 값 (default vaule) 본문

기타 학습/Language

[C++] 매개변수 디폴트 값 (default vaule)

Kangjieun11 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();를 호출했을 때 둘다 호출될 가능성이 있기 떄문에 문제가 된다.