템플릿

이건민·2022년 4월 17일
0

powerC++

목록 보기
12/12
post-thumbnail

📒 템플릿(template)

  • 다양한 타입에 대해 같은 일을 하는 기능



✔ 함수 템플릿

template<typename T>
T get_max(T a, T b){
	return a > b ? a : b;
}

데이터 타입을 변수처럼 표시해서 다양한 데이터 타입에서 사용가능하게 함.





✔ 함수 템플릿의 특수화

만약 char인 경우만 다르게 표현하고 싶다면!

template<>
char get_max(char a, char b){
	return a;
}







✔ 여러 개의 타입 매개 변수를 가지는 함수 템플릿

template<typename T1, typename T2>
T1 printsum(T1 a, T2 b){
	return a + b;
}






✔ 클래스 템플릿

template<typename 타입이름> 
class classname
{
	...
}
template<typename T>
class Box{
	...
};


int main(){

	Box<int> a;
    Box<float> b;
    Box<string> c;
}







클래스 외부에 템플릿 멤버 함수를 정의하는 경우

  • 함수 템플릿처럼 함수 정의 앞에 template<typename ..>를 써야한다.

클래스 템플릿의 매개 변수에도 디폴트 값을 부여할 수 있다.

template<typename T = int>
ex) Box<> box;







템플릿 사용의 장점

  • 클래스를 생성하기 전까지 코드가 생성되지 않는다.(코드의 크기를 증가시키지 않는다)

  • 정적 멤버는 클래스 템플릿으로 생성된 모든 클래스에 대하여 각각 하나씩 생성된다.

profile
모든 게시글에 대한 수정 요구 및 지적 환영합니다

0개의 댓글

관련 채용 정보