Generic type: 컴파일 할 때 컴파일러가 구체적 유형으로 대체시킴
ex)
GenericType maxValue(Generic value1, Generic value2)
{
if (value1> value2)
return value1;
else
return value 2;
GenericType은 int, double, char, string 등 모든 유형에 적용 가능
GenericType이 없이 매개변수 유형 별로 함수를 정의한다면
4개의 오버로딩 함수를 작성해야 함
c++ 은 GenericType의 함수 템플릿을 정의할 수 있음
template<typename T> //함수 템플릿 정의
T maxValue(T value1, T value2){
if (value1> value2)
return value1;
else
return value 2;
}
형식 매개변수
T는 형식 매개변수(일반적으로 하나의 대문자로 표현)
역할: 함수의 반환 형식 지정, 함수 매개변수 선언, 함수 내에서 변수 선언
함수 호출
maxValue(1,3) ->컴파일러는 T형식 매개변수를 int로 대체
주의할 점: 두 값이 비교 가능, 두 값이 같은 유형일 때만 제네릭 함수 이용 가능