본문 바로가기
{Programing}/C.C++

c/c++ 템플릿

by 탱타로케이 2020. 1. 13.

템플릿(template)이란 함수 오버로딩 같이 자료형에 따라 같은 코드를 여러번 작성해야하던 번거로움을 

임의의 자료형으로 대체하여 한번만 작성해도 되도록 만들어주는 기법.

 

함수 템플릿 : 함수의 기능은 명확하게. 입출력은 모호하게.

 

template <typename T>
T sum(T a, T b)
{
	return a+b;
}

여기에서 첫줄은 템플릿 자료형을 정의 하는 부분이고,

나머지가 템플릿 함수이다.

입력되는 자료형. 반환형 모두 템플릿 자료형을 사용하여 어떤 자료형이 들어오더라도 처리할 수 있게 한 것.

 

템플릿을 여러개 써도 된다.

template <typename T1, typename T2>
void printAll(T1 a, T2 b)
{
	cout << "T1 : " << T1 << endl;
    cout << "T2 : " << T2 << endl;
}

 

클래스 템플릿 : 클래스 멤버 변수, 함수가 템플릿을 이용하는 경우의 클래스.

 

클래스 앞에 템플릿 선언을 하고 멤버 변수, 함수를 선언한다.

 

멤버함수의 경우 클래스 선언 내부에서 정의까지 마친다면 상관없지만,

소스파일로 옮겨서 정의 한다면 함수 정의 앞에 템플릿 선언을 꼭 명시해주어야한다.

'{Programing} > C.C++' 카테고리의 다른 글

c/c++ 파일 입출력  (0) 2020.01.17
c/c++ 문자열  (0) 2020.01.14
c/c++ enum, preprocesser  (0) 2020.01.06
c/c++ const 예약어  (0) 2020.01.06
c/c++ 배열, 동적할당  (0) 2020.01.06

댓글