PROGRAMMING LANGUAGE/C++

C++ 함수 템플릿 사용하기

JC0 2021. 7. 6. 00:22


#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;
}

함수 템플릿이 실행 프로그램을 짧게 만들어 주지는 않는다. 함수 템플릿의 장점은 오버로딩해서 사용하는 것보다 여러개의 함수 정의를 할 필요없이 간단하고 신뢰성 있게 생성할 수 있다.