개념
- 코드의 재사용성을 높이고 자료형에 독립적인 프로그래밍을 가능하게 하는 기능
- 자료형을 추상화하여 클래스와 함수를 선언할 수 있다.
- template, typename 키워드를 사용한다.
문법
클래스 선언 위에 템플릿 예약어를 `template <typename T>`처럼 사용한다.
클래스의 인스턴스 생성 시 `<>` 안에 사용하고자 하는 자료형을 넣는다.
사례
템플릿을 활용한 클래스 선언
#include <iostream>
using namespace std;
template <typename T> class Calculator {
public:
Calculator() {
result_ = 0;
cout << "Initiated" << endl;
}
~Calculator() { cout << "Terminated" << endl; }
void add(T operand_a, T operand_b) { result_ = operand_a + operand_b; }
void print() { cout << result_ << endl; }
private:
T result_;
};
템플릿이 활용된 클래스의 인스턴스 생성
int main() {
Calculator<int> a;
a.add(10, 12);
a.print();
Calculator<float> b;
b.add(1.2, 203.4);
b.print();
return 0;
}