Pages

Saturday, January 6, 2018

C/C++ 언어 프로그래밍-함수3

C/C++ 언어 코딩 복습 - 함수 3 (오버로딩: Overloading)

- 함수의 오버로딩 (Overloading) 대해 정리해보도록 하겠습니다. 프로그램을 작성하는데 비슷한 용도로 사용되는 함수들을 각각 정의해 사용하면 때로는 너무 많은 이름의 함수들이 생길 있습니다. 이러한 문제를 해결할 있는 것이 함수의 오버로딩 (Overloading) 입니다.

- , 동일한 이름으로 함수를 여러번 (중복) 해서 정의를 있습니다. 이때 각각의 함수를 구별하기 위해서는 구분할 있는 정보 (signature) 사용자가 작성하여야 합니다. 방법으로는 같은 이름의 함수를 사용할 인자 (parameter) 개수 인자의 자료형을 다르게 주어 사용하는 것입니다.

- 앞장의 예제를 이용해 살펴보도록 하겠습니다. 앞장의 예제에서는 세가지 함수 t_f1, t_f2, t_f3 들의 이름을 다르게 하여 정의하였습니다. 이를 하나의 이름으로 바꾸도록 하겠습니다.

사용예시 :

기존 예제:
void t_f1();
void t_f2(int);
int  t_f3(int, int);

- 세가지 다른 이름의 함수들입니다. 이들을 'tF' 라는 하나의 이름으로 바꾸고 실행해보도록 하겠습니다.

예제코드

#include <iostream>
using namespace std;

void tF();
void tF(int);
int  tF(int, int);

int main() {
     cout << endl;
     cout << "##############################" << endl;
     cout << " Function overloading example " << endl;
     cout << "##############################" << endl;
     cout << endl;

     tF();
     int num, num2, num3 ;
     cout << "Enter a natural number between 0 and 10. : ";
     cin  >> num ;

     tF(num);
     num2 = 10 ;
     num3 = tF(num, num2);
     cout << num <<" + "<< num2 <<" = "<< num3 << endl;
     return 0;
}

void tF(){
cout << " No parameters and return values. " << endl;
}

void tF(int a){
       if(a > 5){
             cout<< a << " > 5 is true. "<<endl;
           }else{
        cout<< a << " <= 5 is true. "<<endl;
           }
}

int tF(int a, int b){
     int c ;
     c = a + b ;
     return c ;
}

- 앞의 예제와 한번 구분하기 위해 "Function overloading example" 이라는 문구가 출력되게 하였습니다. 다른 내용들은 앞장 예제와 같고 함수 이름만 'tF' 모두 변경하였습니다.

실행결과


- 실행을 하면 "Function overloading example" 이라는 문구가 먼저 출력되었습니다.

(1) 그리고 인자 리턴값이 없는 함수 'tF()' 결과로 " No parameters and return values. " 이라는 문장이 출력되었습니다.

(2) 정수형 인자 하나를 갖고 return 값이 없는 함수 'tF()' 결과로 0 10 사이의 자연수를 입력하라는 문장도 출력되었습니다. 여기에 2 입력하고 엔터키를 누르면 " 2 <= 5 is true. " 라는 문구가 나옵니다.

(3) 정수형 인자 두개를 갖고 return 값의 자료형이 정수형인 함수 'tF()' 결과로 " 2 + 10 = 12 " 출력되는 것을 확인할 있습니다. 

No comments:

Post a Comment