study/C++

매개변수의 디폴트 값(Default Value)

IT공부 2020. 5. 19. 19:29
반응형

C++의 함수에는 '디폴트 값'을 설정할 수 있다.

 

매개변수에 설정하는 '디폴트 값'

 

int MyFuncOne(int num=7)
{
	return num+1;
}

int MyFuncTwo(int num1=5, int num2=7)
{
	return num1+num2;
}

"매개변수의 디폴트 값은 함수 호출 시 인자를 전달하지 않으면 7이 전달된 것으로 간주하는 것"

 

MyFuncOne();     //7이 전달된 것으로 간주!

MyFuncTwo(7);

 

MyFuncTwo();     //5와 7이 전달된 것으로 간주!

MyFuncTwo(5, 7);

 

DefaultValue1.cpp

#include<iostream>
using namespace std;

int Adder(int num1=1, int num2=2)
{
	return num1+num2;
}

int main(void)
{
	cout<<Adder()<<endl;
	cout<<Adder(5)<<endl;
	cout<<Adder(3, 5)<<endl;
	return 0;
}

실행결과

3

7

8

 

"매개변수에 디폴트 값이 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자 전달이 가능하다. 

 그리고 전달되는 인자는 왼쪽에서부터 채워져 나가고, 부족분은 디폴트 값으로 채워진다."

 

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

 

"부분적 디폴트 값 설정은 오른쪽 부터 채워야 한다.  그 이유는 함수에 전달되는 인자가 왼쪽에서부터 오른쪽으로 채워   지기 때문이다"

 

int Func(int num1, int num2, int num=30) {.....}     (o)

int Func(int num1, int num2=20, int num=30) {.....} (o)

int Func(int num1=10, int num2=20, int num=30) {. . . . } (o)

 

int WrongFunc(int num1=10, int num2, int num3) {. . . . .} (x)

int WrongFunc(int num1=10, int num2=20, int num3) {. . . . .} (x)

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

malloc & free를 대체하는 new & delete  (0) 2020.05.20
참조자(Reference)  (0) 2020.05.19
자료형 bool  (0) 2020.05.19
이름공간(namespace)에 대한 소개  (0) 2020.05.19
함수 오버로딩(Function Overloading)  (0) 2020.05.19