본문 바로가기

C++

[C++] 매개변수 디폴트 값

C++에서는 매개변수에 디폴트 값을 설정할 수 있다.

#include <iostream>

using namespace std;

void Func(int a = 0) {
	cout << a << endl;
}

int main() {
	Func();
	Func(2);

	return 0;
}


위의 예시에서, 첫번째 print()함수 호출 시에는 '0'이 출력된다.

함수 호출 시 인자를 전달하지 않는 경우에는 '0'이 전달된 것으로 간주된다.



디폴트 값 설정 주의사항

디폴트 값 설정은 오른쪽부터 순서대로 설정이 가능하며, 함수 선언 시 설정해야 한다.

전달되는 인자는 왼쪽부터 채워진다.

#include <iostream>

using namespace std;

void Func(int a = 1, int b = 2);    // 함수 선언

int main() {
	Func();
	Func(3);
	Func(3, 5);

	return 0;
}

void Func(int a, int b) {
	cout << a << ", " << b << endl;
}


결과



전달되는 인자는 왼쪽부터 채워지므로, Func(3) 호출 시 a에는 3이, b에는 디폴트 값 2가 설정된다.


(O)

void Func(int a, int b, int c = 3);

void Func(int a, int b = 2, int c = 3);

void Func(int a = 1, int b = 2, int c = 3);


(X)

void Func(int a = 1, int b, int c);

void Func(int a = 1, int b = 2, int c);


디폴트 값은 오른쪽부터 설정해야 하므로, 위와 같은 경우는 디폴트 값을 지정할 수 없다.



'C++' 카테고리의 다른 글

[C++] 기본 자료형  (0) 2019.03.05
[C++] 인라인(inline) 함수  (0) 2019.03.04
[C++] 함수 오버로딩  (0) 2019.03.04
[C++] 입력  (0) 2019.02.28
[C++] namespace  (0) 2019.02.28