C++에서는 디폴트 값이라는 것을 설정할 수 있다. 여기서 말하는 디폴트 값이란 기본적으로 설정되어 있는 값을 의미한다. 아래 각 예제 코드들을 가지고 해보길 바란다. 본론으로 들어가겠다.
- DefaultValue1.cpp -
#include <iostream>
using namespace std;
int Adder(int num1 = 1, int num2 = 2) // Adder함수의 인자값의 디폴트 값이 1, 2로 설정되어 있다.
{
return num1 + num2;
}
int main(void)
{
cout << Adder() << endl;
cout << Adder(5) << endl;
cout << Adder(3, 5) << endl;
return 0;
}
실행결과
- DefaultValue2.cpp -
#include <iostream>
using namespace std;
int Adder(int num1 = 1, int num2 = 2);
// Adder함수의 선언부 인자값의 디폴트 값이 1, 2로 설정되어 있다.
int main(void)
{
cout << Adder() << endl;
cout << Adder(5) << endl;
cout << Adder(3, 5) << endl;
return 0;
}
int Adder(int num1, int num2)
{
return num1 + num2;
}
실행결과
- DefaultValue3.cpp -
#include <iostream>
using namespace std;
int BoxVolume(int length, int width = 1, int height = 1);
int main(void)
{
cout << "[3, 3, 3] : " << BoxVolume(3, 3, 3) << endl;
cout << "[5, 5, D] : " << BoxVolume(5, 5) << endl;
cout << "[7, D, D] : " << BoxVolume(7) << endl;
// cout << "[D, D, D] : " << BoxVolume() << endl;
return 0;
}
int BoxVolume(int length, int width, int height)
{
return length*width*height;
}
실행화면
- 문제 -
다음과 같은 형태로의 함수 오버로딩은 문제가 있다. 어떠한 문제가 있는지 설명해보자
int SimpleFunc(int a = 10)
{
return a + 1;
}
int SimpleFunc(void)
{
return 10;
}
해답(아래 빈부분을 드래그하면 보입니다.)
함수를 호출할 때 인자값을 전달하지 않고 함수를 호출하는 경우. 두 함수 모두 호출조건을 만족하기 때문에 컴파일 에러가 발생한다.
'[C], [ C++]' 카테고리의 다른 글
이름공간(namespace[네임스페이스]) 소개 (0) | 2016.02.21 |
---|---|
인라인(Inline) 함수 (0) | 2016.02.21 |
STL - list 사용 예시 예제 (0) | 2016.02.19 |
함수 오버로딩 (0) | 2016.02.18 |
STL - map 사용 예시 예제 (0) | 2015.05.28 |