[C++] 템플릿

개념

  • 코드의 재사용성을 높이고 자료형에 독립적인 프로그래밍을 가능하게 하는 기능
  • 자료형을 추상화하여 클래스와 함수를 선언할 수 있다.
  • 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;
}