|
|
|
C++ | |
|
주제 : 템플릿(template) |
작성일자 : 2012-08-10 작성자 : 이 후용 |
※ 템플릿이란?
‘틀’ 이라는 의미를 가지며 코드를 작성하기 위한 (가상)코드 이다.
곧 함수를 만드는 도구일 뿐이다.
예로 붕어빵가게를 떠올리면 붕어빵 기계의 붕어빵을 굽기 위한 붕어빵모형 이다.
※ 전역 템플릿 함수
-템플릿작성요령
template <typename [가상타입명]>
[리턴형식] 템플릿함수명(입력인자리스트)
{
[코드]
}
<예제 코드>
<실행 결과>
위의 ‘예제코드’를 통해
-num1=5,num2=4인 경우
|
int add(int num1, int num2) { return num1 + num2; } |
-num1=5.5, num2=4.4인 경우
|
double add(double num1, double num2) { return num1 + num2; } |
이와 같은 식으로 계산됨을 ‘실행 결과’를 통해 알 수 있다.
※ 명시적 템플릿 인수 사용하여 함수 구현
-head.h
|
template<typename T> int Compare(T t1, t2) { return t1-t2; } |
-main.cpp
|
int Compare<>(const char *str1, const char *str2) { return strcmp(str1,str2); } |
이와 같은 식으로 구현되며
head.h에 있는 템플릿함수는 가짜 코드이며 main.cpp에 있는 코드는 진짜코드이다.
여기서 main.cpp에 있는 템플릿 인자형식이 int인 Compare<>함수(진짜코드)는
템플릿 코드(가짜코드)를 기반으로 컴파일러가 작성하여 호출하도록 한다.
|
|