템플릿

hyun20·2021년 8월 4일
0

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로 대체
주의할 점: 두 값이 비교 가능, 두 값이 같은 유형일 때만 제네릭 함수 이용 가능

0개의 댓글

Powered by GraphCDN, the GraphQL CDN