템플릿?  
 : Template 이라는 단어는 모형자라는 의미를 가진단어로, C++에서 템플릿은 어떤 제품을 만들어내는 틀, 예를 들어 붕어빵에 비교해 보자면, 붕어빵을 만들어 내는 틀을 템플릿이라 말 할 수 있다. 템플릿의 특징은 기능은 이미 결정되어 있지만, 데이터 타입은 결정되어 있지 않는다는 특징을 가지고 있다. 아래에는 Sub라는 함수가 있다.
  1. int Sub(int a, int b)   
  2. {   
  3.     return a-b;   
  4. }  
 Sub라는 함수는 두개의 int 형 데이터를 서로 빼주는 그런 함수이다. 이런 함수를 한번 템플릿화 해보겠는데, 템플릿의 특징은 무엇이라 했는가? 바로 기능은 결정되어 있고 데이터 타입은 결정되지 않는 그런것이라고 언급을 했었다. 여기서 기능은 Sub(바로 빼주는) 거라고 할 수 있고, 데이터 타입은 int 이다. 이것은 유념해 두고 템플릿화 해보면 다음과 같이 템플릿화 할 수 잇다. 
  1. template <typename T>   
  2. T Sub(T a, T b)    
  3. {   
  4.     return a-b;   
  5. }  
 여기서 template <typename T>는 T라는 타입이름에 대해서 그 아래 존재하는 함수를 템플릿화 하겠다는 의미이다. 여기서 T라는 자료형은 Sub라는 이 함수를 사용할 때, 결정된다. 그럼 이 템플릿화 한 함수를 한번 직접 써보자.
  1. #include <iostream>   
  2. using namespace std;   
  3.   
  4. template <typename T1, typename T2> // 함수 템플릿 정의   
  5. void ShowData(T1 a, T2 b)    
  6. {   
  7.     cout<<a << " ";   
  8.     cout<<b<<endl;     
  9. }   
  10.   
  11. int main(void)   
  12. {   
  13.     ShowData(1, 2);   
  14.     ShowData(3, 2.5);   
  15.   
  16.     return 0;   
  17. }  

이와 같이 템플릿(Template)은 자료형에 독립적으로 쓸 수 있다는 장점을 가지고 있다. 
Posted by 모과이IT
,