int F(int a) { return a + 6; } double F(double a) { return a + 6.0; }
이 두 함수는 인수의 개수나 자료형, 또는 복귀 값의 자료형만 다를 뿐 함수 본체의 처리 과정이 똑같다. 그런데 이렇게 인수의 자료형만 다를 뿐 인수의 개수도 같고 내부의 처리 과정마저도 동일한 함수를 매번 새로 정의하여 사용한다는 것은 불편한 일이다.
그래서 C++ 에서는 이러한 불편을 줄이기 위해 함수 템플릿(function template)을 제공한다.
사용법 : 함수 템플릿을 정의할 때는 template라는 키워드를 사용한다. template <typename T> T는 임시 자료형으로 T를 사용하지 않고 temp, a, b, prefix...등 원하는데로 사용해도 되지만 보통 T를사용한다.
함수의 다형성을 사용한 예를 바꿔 보겠다.
훨씬 간편해 진 것을 볼 수 있다.
T F(T a) { return a+6; } -> int F(int a) { return a+6; }
컴파일러는 위와 같이 해석을 하는데 두 함수는 같은 형태라고 할 수 있다.
|
반응형
'IT > C Language' 카테고리의 다른 글
참조의 의한 전달2 (call by reference) (0) | 2014.12.19 |
---|---|
함수에 자료 전달 방법 (0) | 2014.12.19 |
함수의 다형성(polymorphism) 1 (0) | 2014.12.19 |
C언어에서 알아야 할 것들 (0) | 2014.12.19 |
소수의 합 구하기 (0) | 2014.12.19 |