안녕하세요. letitkang입니다.
'윤성우의 C++ 열혈강의'를 한번 또 볼까요?
지난 포스팅들 에서는 C++의 기본적인 것에 대해 알아보았습니다.
이제부터 본격적으로 C++에 대해 알아보겠습니다.
바로 포스팅 시작할게요!
함수 오버로딩(Function Overloading)?
함수오버로딩이란 무엇일까요?
먼저 소스코드를 보겠습니다.
===============================================================================================
함수 오버로딩 관련 소스코드
================================================================================================
1 int MyFunc(int num)
2 {
3 num++;
4 return num;
5 }
6
7 int MyFunc(int a, int b)
8 {
9 return a+b;
10 }
11
12 int main(void )
13 {
14 MyFunc(20); // MyFunc(int num) 함수 호출
15 MyFunc(30. 40); // MyFunc(int a, int b) 함수 호출
16 }
함수 오버로딩은 어려운 개념이 아닙니다. 뒤에가면 어려운 것들이 많으니 벌써 어려우면 안됩니다!!!
다음은 매개변수의 디폴트 값에 대해 알아보겠습니다.
C++에서는 함수의 매개변수에 디폴트 값을 설정할 수 있습니다. 매개 변수를 입력하지 않더라도, 함수를 호출하면 기본적인 값이 전달된다는 뜻입니다.
그것에 대한 예를 한번 보겠습니다.
디폴트 값의 대입은 위와 같이 하면 됩니다. 어렵지 않아요!
위 함수들의 의미는 매개변수를 전달하지 않으면, 디폴트로 설정된 값이 전달되었다고 판단하겠다는 뜻입니다.
함수 호출 방법은 아래와 같습니다.
MyFuncOne(); MyFunc();
아래의 소스코드를 한번 보겠습니다.
아래의 소스 코드는 매개변수에 디폴트 값을 지정하고, 호출하는 예제를 나타난 것이다.
================================================================================================
소스코드
================================================================================================
1 #include <iostream>
2
3 int Adder(int num1=1, int num2=2)
4 {
5 return num1+num2;
6 }
7
8 int main(void)
9 {
10 std::cout<<Adder()<<std::endl;
11 std::cout<<Adder(5)<<std::endl;
12 std::cout<<Adder(3,5)<<std::endl;
13
14 return 0;
15 }
결과
================================================================================================
3
7
8
매개변수에 디폴트 값이 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자 전달이 가능합니다. 그리고 인자는 왼쪽부터 채워져 나가고, 디폴트 값으로 채워집니다.
그리고 위의 소스르 보면, 디폴트 값은 함수의 선언 부분에만 표현하면됩니다.
몇 가지 예제를 보겠습니다.
int YourFunc(int num1, int num2, int num3=30) {}
int YourFunc(int num1, int num2=20, int num3=30) {}
int YourFunc(int num1=10, int num2, int num3=30) {}
위의 3가지는 다 가능합니다. 여기서 알 수 있는 것은, 매개 변수는 오른쪽부터 채워 가야됩니다. 함수에 전달되는 인자가 왼쪽에서 오른쪽으로 채워지기 때문입니다.
이번 포스팅은 이정도로 마무리 하겠습니다.
다음 강에서는 C++의 다른 기능에 대해서 이야기해보도록 하겠습니다!
읽어주셔서 감사합니다.