C++

C++) 템플릿(Template)

zzugest1 2024. 12. 26. 20:41

템플릿 : 어떤 자료형이 들어오든 대응할 수 있도록, 자료형이 무엇인지 확정해두지 않고 임시 자료형을 선언한 뒤 어떤 작업을 할 것인지 그 형틀을 만들어둔 것

template<typename T>

 

여기서 앞의 template은 :템플릿 데이터 지시 직후에 나오는 작성이 끝날 때까지 템플릿에서 지정한 규칙이 적용된다.

뒤의 typename은 템플릿에서 누락된 자료형의 존재를 대신해서 자료형이 들어갈 자리'를 지칭하기 위한 임시명칭

임시 명칭 T는 아무거나 바꿔나 상관없으나 T를 많이 사용한다고 한다.

 

template <typename T>

T Calculate(T x, T y)
{
   T result = x + y;
   return result;
}

이렇게 탬플릿을 이용해 함수를 만들었을 때, 임시명칭으로 지정된 미지의 자료형 T로 변수 생성 후 미지의 변수 x, y를 연산하고 할당할 수 있다.

 

    int num1 = 10;
    int num2 = 3;
    
    Calculate<int>(num1, num2);

탬플릿을 사용한 함수는 위와 같이 사용되는데 Calculate앞에 <int>가 붙어있다. 탬플릿을 호출할때는 앞에 <>와 원하는 자료형을 넣어서 호출하는 쪽에서 정확하게 제시하는 것이 필수라고 한다. 

 

이렇게 템플릿을 호출하는데 불편한데 사용하는 이유는 다음과 같다.

1. 많은 자료형의 종류에 대응하기 위해

2. <>안에 어떤 자료형이 들어갈지 파악하기 힘들때

 

'C++' 카테고리의 다른 글

C++) 클래스(Class)  (0) 2025.01.08
C++) 동적 할당  (0) 2025.01.06
C++) 포인터(Pointer)  (0) 2025.01.06
C++) 인터페이스(Interface)  (0) 2024.12.26
C++) STL과 자료구조  (0) 2024.12.23