#include <iostream>
// 함수 템플릿 원형
template <class Any>
void Swap(Any& a, Any& b);
using namespace std;
int main()
{
int i = 10;
int j = 20;
cout << "i, j = " << i << ", " << j << ".\n";
cout << "컴파일러가 생성한 int형 교환기를 사용하면\n";
Swap(i, j);
cout << "이제 i, j = " << i << ", " << j << ".\n";
double x = 24.5;
double y = 81.7;
cout << "x, y = " << x << ", " << y << ".\n";
cout << "컴파일러가 생성한 double형 교환기를 사용하면\n";
Swap(x, y);
cout << "이제 x, y = " << x << ", " << y << ".\n";
return 0;
}
// 함수 템플릿 정의
template <class Any>
void Swap(Any& a, Any& b)
{
Any temp;
temp = a;
a = b;
b = temp;
}
함수 템플릿이 실행 프로그램을 짧게 만들어 주지는 않는다. 함수 템플릿의 장점은 오버로딩해서 사용하는 것보다 여러개의 함수 정의를 할 필요없이 간단하고 신뢰성 있게 생성할 수 있다.
'PROGRAMMING LANGUAGE > C++' 카테고리의 다른 글
함수의 Default 매개변수 (0) | 2021.11.11 |
---|---|
const 함수 이용 (0) | 2021.11.11 |
inline 함수 (0) | 2021.11.11 |
참조를 리턴받을 때 문제점 (0) | 2021.11.10 |
strcpy , strcpy_s 차이점 (0) | 2021.08.16 |