템플릿 타입 사용
T, KeyType, ValueType처럼
템플릿 인자의 역할이 이름에서 바로 읽혀야 합니다.
스택, Pair, 컨테이너처럼 동작은 같고 저장 타입만 바뀐다면 클래스 전체를 복사하지 말고 타입 매개변수로 일반화합니다.
T, KeyType, ValueType처럼
템플릿 인자의 역할이 이름에서 바로 읽혀야 합니다.
FixedSizeStack<T, MAX_SIZE>는 배열 크기를
타입의 일부로 만듭니다.
그래서 클래스 템플릿은 보통 선언과 구현을 헤더에 함께 둡니다.
Pair<int, double>과
Pair<string, char>는 별도 버전입니다.
Pair<int, Pair<string, double>>처럼
구조를 합성합니다.
기본 구현으로 충분한지 먼저 보고 예외만 특수화합니다.
자료구조 로직은 하나, 저장 타입은 호출 지점에서 결정됩니다.
push, pop, get 같은 멤버
의미를 타입별로 유지합니다.
정의를 숨긴 채 새 타입 조합을 쓰면 필요한 코드를 만들 수 없습니다.