본문 바로가기

컴퓨터/C, C++

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

우선 디폴트 값(default value)이란, 기본적으로 설정되어있어서 적용되는 을 의미한다. 전역 변수와 같은 경우에는 기본적으로 0으로 초기화되는 것과 같은 맥락이다.

#include <iostream>
 
using namespace std;
 
void Func(int a = 1)
{
    cout << a << endl;
}
 
void Function(int b = 2)
{
    cout << b << endl;
}
 
int main(void)
{
    Func();
    Func(3);
 
    Function();
    Function(4);
 
    return 0;
}

(실행)

위 코드를 보면 Func 함수에 매개변수 정수형 a가 선언되어 있고 값이 1이라고 되어있는데 int a = 1을 의미하는 것은 함수 호출 시 전달할 인자가 없다면 a의 값을 1로 초기화를 한다는 의미이다. 마찬가지로 Function 함수에서도 매개변수에 int b = 2라고 되어있는데 전달할 인자가 없다면 2로 초기화를 한다고 설정되어있는 것이다.

#include <iostream>

using namespace std;

int ADD(int n1 = 1, int n2 = 2);

int main(void)
{
	cout << ADD();
}

int ADD(int n1, int n2)
{
	return n1 + n2;
}

(실행)

그리고 디폴트 값은 함수의 선언 부분에만 표현하면 된다.

#include <iostream>

using namespace std;

int ADD(int n1, int n2 = 2);

int main(void)
{
	cout << ADD(1);
}

int ADD(int n1, int n2)
{
	return n1 + n2;
}

(실행)

그리고 부분적으로 디폴트 값을 설정할 수 있는데 위 코드에서 n2의 디폴트 값은 설정되어있지만 n1의 경우에는 설정되어 있지 않아서 함수를 호출하는 부분에 1이라는 수를 전달시켰다.

#include <iostream>

using namespace std;

int ADD(int n1 = 1, int n2);

int main(void)
{
	cout << ADD(2);
}

int ADD(int n1, int n2)
{
	return n1 + n2;
}

(실행)

참고로 위의 코드는 에러가 난다. 왜냐하면 오른쪽에 있는 매개변수가 디폴트 값이 지정이 안되었기 때문이다. 그렇다면 오른쪽 매개변수의 디폴트 값이 설정되게 선언을 해야한다.

'컴퓨터 > C, C++' 카테고리의 다른 글

함수 오버로딩[C++]  (0) 2020.12.09
합병 정렬(merge sort) C언어  (0) 2020.06.03
C언어 printf() 함수와 puts() 함수  (0) 2019.12.21