Sanyo 2024. 6. 11. 16:51

template을 사용하면 javascript에서 var를 사용하듯 c++을 사용할 수 있을 것이다.

 

예시를 보고 이해해보자.

 

#include <iostream>

template <class T>
class MyArray {
private:
    T* array;
    int size;

public:
    MyArray(int sz) : size(sz) {
        array = new T[size];
    }

    void set(int index, T value) {
        array[index] = value;
    }

    T get(int index) {
        return array[index];
    }
};

int main() {
    // int 타입을 요소로 가지는 MyArray 객체 생성
    MyArray<int> intArray(5);
    intArray.set(0, 10);
    intArray.set(1, 20);
    std::cout << "Element at index 0: " << intArray.get(0) << std::endl;

    // double 타입을 요소로 가지는 MyArray 객체 생성
    MyArray<double> doubleArray(3);
    doubleArray.set(0, 3.14);
    std::cout << "Element at index 0: " << doubleArray.get(0) << std::endl;

    return 0;
}

 

위 예시처럼 template array를 만들고 외부에서 자유롭게 데이터 타입에 얶매이지 않고 배열을 만들 수 있다. 위 예시는 클래스 탬플릿이다.

 

아래에서 함수 템플릿을 살펴보자.

 

#include <iostream>

template <class T>
T add(T a, T b) {
    return a + b;
}

int main() {
    std::cout << "Addition of integers: " << add(5, 3) << std::endl; // 출력: Addition of integers: 8
    std::cout << "Addition of doubles: " << add(3.5, 2.7) << std::endl; // 출력: Addition of doubles: 6.2

    return 0;
}