C++에서 템플릿은 제네릭 프로그래밍을 지원하기 위한 강력한 기능입니다. 템플릿을 사용하면 함수나 클래스를 일반화하여 재사용할 수 있습니다. 아래는 C++에서 템플릿을 사용하는 방법과 예제입니다:
함수 템플릿:

#include <iostream>
// 두 개의 값을 교환하는 함수 템플릿
template<typename T>
void swapValues(T& a, T& b)
{
T temp = a;
a = b;
b = temp;
}
int main()
{
int x = 10, y = 20;
std::cout << "교환 전: x=" << x << ", y=" << y << std::endl;
swapValues(x, y);
std::cout << "교환 후: x=" << x << ", y=" << y << std::endl;
return 0;
}
위의 예제에서 swapValues 함수는 두 개의 값을 교환하는 템플릿 함수입니다. typename T는 템플릿 매개변수로서 어떤 자료형이든 사용할 수 있음을 나타냅니다. swapValues 함수는 T 타입의 두 매개변수 a와 b를 받아 값을 교환합니다. main 함수에서 int 형 변수 x와 y를 교환하는 예제로 사용하였습니다.
클래스 템플릿:

#include <iostream>
// 벡터 클래스 템플릿
template<typename T>
class Vector
{
private:
T* elements;
int size;
public:
Vector(int size)
{
this->size = size;
elements = new T[size];
}
~Vector()
{
delete[] elements;
}
T& operator[](int index)
{
return elements[index];
}
};
int main()
{
Vector<int> intVector(5);
for (int i = 0; i < 5; ++i)
{
intVector[i] = i * 2;
}
for (int i = 0; i < 5; ++i)
{
std::cout << intVector[i] << " ";
}
std::cout << std::endl;
return 0;
}
위의 예제에서 Vector 클래스는 템플릿 클래스로서 typename T를 사용하여 일반화된 자료형을 표현합니다. Vector 클래스는 size 크기의 동적 배열을 저장하고, operator[]를 통해 배열 요소에 접근할 수 있도록 구현되었습니다. main 함수에서 Vector<int> 타입의 객체를 생성하고 사용하는 예제로 사용하였습니다.
템플릿은 다양한 자료형이나 클래스에 대해 일반화된 코드를 작성할 수 있도록 해줍니다. 이는 코드의 재사용성과 유연성을 높여줍니다.
'[프로그램]' 카테고리의 다른 글
| C++ struct와 class 차이점 (0) | 2023.07.17 |
|---|---|
| C++에서 spdlog는 간편하게 사용할 수 있는 로깅 라이브러리입니다. (0) | 2023.07.17 |
| C++에서 소수점을 올림하는 방법은 ceil 함수를 사용하는 것입니다. (0) | 2023.07.17 |
| C++ 타이머 c++ settimer 응용 예제 (0) | 2023.07.17 |
| C++에서 헤더 파일을 선언하는 방법 (0) | 2023.07.17 |