📝 템플릿을 이용한 일반화
- 일반화 / 제네릭 함수
- 함수 및 클래스의 변수 타입에 관계없이 사용할 수 있도록 틀을 만드는 방법
- 전체 집단을 하나로 묶는 방법
- 템플릿
- 일반화하기 위한 C++의 도구
- templete 키워드 사용
- 선언
template <class T> 또는
template <typename T>
📝 제네릭 함수의 구체화
- 구체화
- 컴파일러가 템플릿 함수로부터 자료형에 맞는 구체화된 함수의 소스코드 생성
📝 템플릿의 장점과 단점
- 장점
- 단점
- 포팅에 취약
- 컴파일 오류 메시지 빈약, 디버깅에 많은 어려움
#include <iostream>
using namespace std;
template <class T>
T add(T data[], int n) {
T sum = 0;
for (int i = 0; i < n; i++) {
sum += data[i];
}
return sum;
}
int main() {
int x[] = { 1,2,3,4,5 };
double d[] = { 1.1,2.2,3.3,4.4,5.5 };
cout << add(x, 5) << endl;
cout << add(d, 5) << endl;
}