본문 바로가기
C++/기초

C++ 기초 : 함수 템플릿

글: 시플마 2024. 4. 17.

두 수를 받아 더한 후 반환하는 Add 함수가 있습니다.

 

현재 int형(정수) 두 개를 받아 반환하기 때문에

Add 함수를 통해 실수 계산을 하려고 하면

제대로 작동하지 않을 겁니다.

 

 

 

그래서 아래 코드처럼

 

Add 함수를 오버로딩하여 같은 이름으로 하되, 

해당 함수의 매개변수의 타입을 달리 하여

두 실수의 합을 계산할 수 있도록 해야 할 겁니다.

 

 


 

 

 

 

하지만 '함수 템플릿'이라는 기능을 사용하면

이렇게 할 필요가 없습니다.

 

아래 코드에서 

 

3번째 줄에 있는 것이 함수 템플릿입니다.

 

typename 뒤에 T가 자료형을 대체하죠.

 

꼭 T가 아니더라도 s나 a 등 다른 문자로

해도 상관없지만 일반적으로 T를 사용합니다.

 

함수 템플릿으로 구성한 Add 함수를 보면

반환 타입과 매개변수가 T형인 것을 볼 수 있죠.

 

main 함수에서 Add 함수를 호출할 때 

뒤에 어떤 자료형으로 계산할지 쓰면

인자로 받은 두 수를 해당 자료형으로 인식하고

계산하며 해당 자료형으로 반환합니다.

 

29번째 줄의 Add 함수는 1과 2를 int형으로 취급하여 

int형 변수 idata에 값이 제대로 들어간 것이 보이고,

 

31번째 줄의 Add 함수는 1.1과 2.2를 float형으로

취급하여 float형 변수 fdata에 3.3이 들어간 게 보입니다.

 


 

 

이때 호출된 함수 옆에 자료형을

 

기입하지 않아도 들어온 값의 자료형을 

알아서 판단하기 때문에 적절히 계산해 주는 것을

볼 수 있습니다. 

 

 

일반적인 함수 호출과 같은 형태로 

사용하긴 하였지만 여전히 함수 템플릿이라는 점을

알아 두어야 합니다.

 

 

 

 

강의 출처 : https://www.youtube.com/watch?v=PFc4g8mxOiI&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&pp=iAQB