반응형
template<typename T> // <class T> 라고 해도 됨!
void Print(T a)
{
cout << a << endl;
}
int main()
{
Print<int>(50); // "<int>"로 타입을 지정해줄 수가 있음
Print(50); // 타입을 따로 지정하지 않으면 알잘딱해줌!
Print(50.5);
Print("Hello World");
return 0;
}
template를 사용하면 "인자로 받는 변수의 타입별"로 "여러개의 함수를 정의할 필요"없이 알잘딱 해줌
template<typename T1, typename T2>
void Print(T1 a, T2 b)
{
cout << a << " :::: " << b << endl;
}
위처럼 두 종류 이상의 인자를 받을 수도 있음
template<> // template 특수화
void Print(Knight a)
{
cout << "TEMPLATE 특수화! ! 1 ! ! 1 ! ! ! ! 1 ! ! " << endl;
cout << a._hp << endl;
}
template 특수화를 이용해서 "지정한 변수 or 객체"를 따로 설계할 수가 있음
반응형
LIST