본문 바로가기
Study/C++

[C++]템플릿(Template)

by DawIT 2020. 12. 17.
320x100

템플릿(Template) 이란?

템플릿은 형판, 견보기, 견본 이라는 뜻이 있다. C++ 에서 템플릿은 어떤 형틀을 만들어 놓아서 원하는 타입을 이용하여 사용하는 문법이다.

 

사용할 만한 모든 타입마다 작성하지 않아도 되기 때문에 생산성이 높아지고, 코드가 줄어든다.

 

함수 템플릿

함수 템플릿은 함수를 정의할 때에, 특정 자료형을 정하지 않고 정의한다.

 

 

이렇게 함수의 선언부 앞에 template <typename T>를 작성해 준다. T 가 아니어도 상관 없지만 T를 자주 쓴다.

 

이 함수를 호출할 때를 보면, 함수명<자료형>(인자) 의 형태로 호출한다. <자료형>은 써주지 않아도 되지만, 써주는 것이 좋다.

 

그런데 템플릿을 이용하여 코드를 작성하다 보면 특정 자료형에 대해서만 함수의 내용을 바꾸고 싶을 수 있다. 그럴 때에는 함수를 오버로드해주면 된다.

 

 

addPrint함수는 두 매개변수를 더한 값을 콘솔에 출력하는 함수이다. 여기서 string에 대해서는 중간에 공백을 넣어주고 싶다면 이렇게 작성한다.

 

 

각각의 addPrint 호출에 대해서 첫번째에는 기본 함수로, 두번째는 인자가 모두 string 이므로 오버로드된 두번째 함수가 호출된다.

 

 

클래스 템플릿

클래스에서 사용할 자료형도 템플릿 설정이 가능하다.

 

클래스에서 템플릿을 사용하기 위해서 그냥 클래스 위에 template <typename T> 만 작성해주면 된다.

 

댓글