템플릿 원형 확인
컴파일러가 클래스 틀과 멤버 함수 정의를 함께 확인합니다.
template <typename T1, typename T2>
`Pair<int, double>`처럼 타입 인자를 적으면 컴파일러는 T1, T2를 실제 타입으로 바꾼 별도의 클래스 코드를 준비합니다.
컴파일러가 클래스 틀과 멤버 함수 정의를 함께 확인합니다.
template <typename T1, typename T2>
T1에는 int, T2에는 double을 대입해 필요한 버전을 고릅니다.
T1 = int
T2 = double
멤버 변수와 함수 시그니처가 실제 타입 기준으로 확정됩니다.
Pair<int,double>
생성된 클래스 기준으로 생성자 호출과 멤버 접근을 검사합니다.
p1.display()
템플릿 정의가 보이지 않으면 컴파일러가 새 타입 조합을 만들 수 없습니다. 그래서 클래스 템플릿 정의는 보통 헤더에 둡니다.