본문 바로가기
Computer Science/C & C++

[C++] 매개변수 디폴트 값 (Default Value)

by 진뚱 2021. 7. 6.
728x90

C++에서는 함수에서 Default값이라는 것을 설정할 수 있다. 

int func(int a=1)	//함수 호출 시 인자를 전달하지 않으면 1이 전달된 것으로 인지
{
	return a+1;
}

따라서 이런 경우는 아래의 경우 같은 함수가 불린 것처럼 동작하게 된다.

func();		//1이 전달된 것과 같다.
func(1);

 

그렇다면 아래와 같은 경우는 어떻게 동작할까?

int func(int a, int b=1, int c=2)
{
	a = a+b+c;
    return a;
}

func(0);        //func(0,1,2)
func(0,5);      //func(0,5,2)
func(0,5,5);    //func(0,5,5)

위처럼 매개변수의 디폴트 값이 설정된 경우 선언된 매개변수보다 적은 매개변수를 넣고도 함수 수행이 가능하다.

전달할때의 인자는 왼쪽부터 채워지고, 부족분은 Default로 채워진다. 이렇게 수행되려면 규칙이 있는데, Default값은 무조건 오른쪽부터 채워져야한다는 것이다.

int func(int a=3, int b)		//잘못된 디폴트 값 선언
{
	a = a+b;
    return a;
}

위와 같이 왼쪽부터 Default를 채우게 되면, 함수 사용에 있어 어려움이 있기 때문에 이렇게는 Default값을 지정할 수 없다. 반드시 오른쪽 매개변수의 default값부터 채우는 형태로 정의해야한다.

728x90

'Computer Science > C & C++' 카테고리의 다른 글

[C++] 인라인(inline) 함수  (0) 2021.07.06
[C++] 함수 오버로딩 (Function Overloading)  (0) 2021.07.06

댓글