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

+ Recent posts