|
탬플릿을 이용하면 아래 함수 하나면 되지만(어디까지나 코딩 시의 얘깁니다)
template <class T1 , class T2>
int Compare(T1 a,T2 b)
{
if(a>b) return 1;
else if(a==b) return 0;
else return -1;
//또는 간단히 return(a-b);
}
그렇지 않으면
int Compare(int ,int);
int Compare(int ,char);
int Compare(char ,int);
int Compare(float ,int);
int Compare(float ,float);
등이 자료형에 따라 필요합니다.
탬플릿을 이용하여, 함수 호출을 하게 되면 해당 형에 맞는 함수를 컴파일러가 자동으로 만듭니다.
탬플릿 사용 시 주의할 점은 지정한 자료형이 지원하지 않는 작업을 탬플릿 내에서 하려할 경우가 있을 수 있다는 것입니다.
만약 대소를 판단할 수 없는 클래스를 위의 탬플릿에 지정한다면 문제가 발생하겠죠.
클래스에 대한 탬플릿도 있는데 함수에 대한 것과 같은 맥락입니다.
김광수 님이 쓰신 글 :
: 제가 본 책이 거의 대부분이 클래스에 대한 기본개념책인대..템플릿이란 단어는 못들어봤습니다.
:
: 그럼 제가 몰 잘못 배운건가요?
: 클래스를 안다는 사람이 템플릿을 모르니 ㅡㅡㅋ....
: 템플릿에 관한 책좀 (번역서) 소개해주세요... 전 원서 볼줄몰라요 ㅡ.ㅡㅋ
|