-
Template (1) 함수 템플릿@ 16. 1 ~ 17. 1/C++ 2013. 1. 29. 00:14
Template<typename T>
T Add(T num1, T num2)
{
return num1 + num2;
}
이런식으로..
함수 템플릿..
보통 Add<int>(3,5) 이런식으로
<int> -> <typename T>를 명시해주는 편이다.
cout << Add<int>(3,5) << endl;
이런식으로도..가능하다..
Template<typename T1, typename T2>
void ShowData(T1 num1, T2 num2)
{
cout << (T1)num1 << (T2)num2 << endl;
}
를 이런식으로.. ShowData<char, int>('c',4); 사용이 가능하다..
출력물은 c4 이렇게..나오고
함수 템플릿의 특수화
Template<typename T>
T Max(T a, T b)
{
return a > b ? a : b;
}
이런 함수가 있을떄..
Max("Simple","Best");
이런것은..Best가 출력이 된다..
그래서 이것은 이것에 맞는 특수화가 필요하다는것..
저 함수 아래
Template<>
char *Max(char *a, char *b)
{
return strlen(a) > strlen(b) ? a : b;
}
이런식으로 만들어놓으면.. char *형 템플릿이 필요하면 이것으로 사용하겠다 ..라는것
뭐..
Template<>
int Max(int a, int b)
{
return 10;
}
이런식으로 int때는 이렇게 사용하면된다고 해도된다..이것이 바로 특수화..
지금 포인터 때문에 괴리감에 빠졌다..
이해가 된줄알았는데..
전혀 이해를 못하고 있던상태..
구입해놓고 제대로 못본..처음만 보다가 오 이정도만 이해ㄷ하면 되겠지 스스로 타협..그래서 이지경이 온듯..
이책을 좀 봐야겠다....ㅠ
'@ 16. 1 ~ 17. 1 > C++' 카테고리의 다른 글
Template (3) 클래스 템플릿 특수화 (0) 2013.01.29 Template (2) 클래스 템플릿 (0) 2013.01.29 비트연산자, 함수포인터, ctime (0) 2013.01.27 잊기전 정리.. (1) 2013.01.17 파일 입출력 관련 (0) 2013.01.13