C/C++ 언어 코딩 복습 - 함수 3 (오버로딩:
Overloading)
- 함수의 오버로딩 (Overloading) 에 대해 정리해보도록 하겠습니다. 프로그램을 작성하는데 비슷한 용도로 사용되는 함수들을 각각 정의해 사용하면 때로는 너무 많은 이름의 함수들이 생길 수 있습니다. 이러한 문제를 해결할 수 있는 것이 함수의 오버로딩 (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