프로그래밍/C++

함수 템플릿

우대비 2022. 11. 1. 17:57
반응형
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

'프로그래밍 > C++' 카테고리의 다른 글

STL vector 정리  (0) 2022.11.02
클래스 템플릿  (0) 2022.11.01
함수 객체  (0) 2022.11.01
함수포인터  (0) 2022.10.31
캐스팅  (0) 2022.10.24