본문 바로가기

C++

[7] 함수 템플릿

728x90

처리는 같은데 전달되는 값에 따라 함수를 오버로드하게 되면, 함수를 매우 많이 적어야 할지도 모릅니다.

이때, 템플릿을 통해 이 문제를 해결할 수 있습니다.

 

함수 템플릿

리턴값이나 인수의 타입을 지정하지 않고 전달되는 인수의 값에 따라서 함수를 새로 생성하는 기능입니다.

단, 템플릿은 함수이름이나 인수의 이름은 같고 인수의 타입, 리턴값의 타입이 다른 경우에만 단 한 번 정의할 수 있습니다.

 

템플릿 인수

함수 템플릿의 인수의 타입과 리턴값의 타입을 결정하는 요소입니다.

템플릿 인수 T

 

템플릿 사용

일반 함수와 똑같이 호출을 하면, 자동으로 입력된 값의 타입과 맞는 함수가 새로 생성되어 계산되는 것을 볼 수 있습니다.

 

다형성

하나의 이름으로 상황에 따라 다른 기능을 가지는 특성을 말합니다.

 

오버로드 VS 템플릿

오버로드의 역할을 템플릿도 일부 할 수 있어서 얼핏보면, 템플릿이 더 간단한 것 같지만, 사실은 두 기능의 쓰임은 다릅니다.

 

오버로드

오버로드는 함수 내부의 처리가 다른 함수와 달라도 되는 경우 사용합니다.

 

템플릿

템플릿은 내부 처리가 같은 경우에만 사용합니다.

 

 

 

이상으로 1칠판 설명을 마치겠습니다.

728x90

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

[9] 레퍼런스와 인수(그리고 다수의 포인터 선언)  (0) 2021.04.29
[8] 기본인수  (0) 2021.04.29
[6] 함수 오버로드  (0) 2021.04.28
[5] 인라인 함수  (0) 2021.04.28
[4] 형 변환  (0) 2021.04.28