Class Template

클래스 템플릿 구조 지도

클래스 템플릿은 자료구조의 동작은 유지하고 저장 타입만 바꾸는 설계입니다. 정의 시점에는 T로 쓰고, 사용 시점에는 구체 타입을 넣어 별도의 클래스처럼 컴파일됩니다.

TemplateT를 쓰는 클래스 틀
Argument구체 타입 지정
Instance타입별 클래스 생성
Member멤버 함수도 타입에 맞춤
01

중복 제거

int, string, double용 컨테이너를 따로 만들지 않습니다.

02

타입 안정성

컴파일 시점에 저장 타입이 정해져 잘못된 사용을 잡습니다.

03

헤더 구현

템플릿 정의는 보통 헤더에 두어 컴파일러가 볼 수 있게 합니다.

04

특수화

특정 타입만 다르게 동작해야 하면 특수화를 고려합니다.

설계 기준

  • 동작이 같고 타입만 달라질 때 클래스 템플릿이 잘 맞습니다.
  • 템플릿 오류는 길어질 수 있으므로 인터페이스를 작게 유지합니다.
  • 컨테이너처럼 저장 타입이 핵심인 클래스에서 효과가 큽니다.

용어

T타입 매개변수
Pair<A,B>다중 타입
STL템플릿 활용
specialization특수화