728x90
처리는 같은데 전달되는 값에 따라 함수를 오버로드하게 되면, 함수를 매우 많이 적어야 할지도 모릅니다.
이때, 템플릿을 통해 이 문제를 해결할 수 있습니다.
함수 템플릿
리턴값이나 인수의 타입을 지정하지 않고 전달되는 인수의 값에 따라서 함수를 새로 생성하는 기능입니다.
단, 템플릿은 함수이름이나 인수의 이름은 같고 인수의 타입, 리턴값의 타입이 다른 경우에만 단 한 번 정의할 수 있습니다.
템플릿 인수
함수 템플릿의 인수의 타입과 리턴값의 타입을 결정하는 요소입니다.
템플릿 사용
일반 함수와 똑같이 호출을 하면, 자동으로 입력된 값의 타입과 맞는 함수가 새로 생성되어 계산되는 것을 볼 수 있습니다.
다형성
하나의 이름으로 상황에 따라 다른 기능을 가지는 특성을 말합니다.
오버로드 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 |