개인 공부/c++
Template
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;
}