템플릿이란 어떤 것을 만들 때 안내 역할을 하는, 사용상의 형식. 형판, 형틀, 어떤 특정한 모양을 만들기 위해 만들어진 틀을 말한다. C++에서도 이 의미와 비슷하게 사용된다.
C++템플릿은 코드의 재사용성을 극대화하고, 타입 안전성을 보장하며, 컴파일 시간에 타입을 결정하는 강력한 기능이다. 템플릿을 사용하면 개발자는 타입에 독립적인 코드를 작성할 수 있게 되어, 다양한 데이터 타입에 대해 동일한 함수나 클래스를 사용할 수 있다.
대략적인 내용을 알겠으니 더 자세히 알아보자.
- 코드 재사용성: 동일한 알고리즘을 다양한 데이터 타입에 적용할 수 있어 코드 중복을 줄인다.
- 타입 안전성: 컴파일 시점에 타입 오류를 검출하여 프로그램의 안정성을 높인다.
- 컴파일 시간에 타입결정: 템플릿을 사용하여 함수나 클래스를 정의하면, 이 함수나 클래스는 다양한 타입의 데이터를 다룰 수 있도록 유연하게 설계될 수 있다.
이렇게 템플릿은 타입에대해 강한 모습을 보인다. 여기서 타입이란 int, char, string, float, double과 같은 형태를 말한다.
템플릿의 종류는 보통 두가지가 있는데
- 함수 템플릿: 여러 타입의 데이터를 다룰 수 있는 일반적인 함수를 정의한다.
- 클래스 템플릿: 다양한 타입의 객체를 저장하거나 처리할 수 있는 일반적인 클래스를 정의한다.
예시를 보자면
함수 템플릿:
#include <iostream>
using namespace std;
template <typename T>
T larger(T a, T b) {
return (a > b) ? a : b;
}
int main() {
cout << larger<int>(10, 20);
return 0;
}
클래스 템플릿:
template <typename T>
class Array {
private:
T* data;
int size;
public:
// ...
};
이렇게 사용된다.
템플릿을 사용할때에는 (함수명)or(클래스명) + <타입> + (매개변수) 순으로 작성하면된다.
함수 템플릿의 larger<int>(10,20) 가 그 예시이다.
템플릿은 활용 분야가 널다. 대표적으론 STL( Standard Template Library )에 사용되어 다양한 컨테이너 클래스를 제공한다. 여기서 STL은 vector, list, map 등의 컨테이너 클래스를 의미한다.
다음 시간에는 STL에 대해 더 알아보도록 하겠다.
'C++' 카테고리의 다른 글
문자관련 변수 및 사용 함수들(C++) (0) | 2025.01.06 |
---|---|
STL(C++) (1) | 2024.12.31 |
소멸자 (C++) (1) | 2024.12.27 |
생성자 (C++) (0) | 2024.12.26 |
C++ - 클래스를 이용한 평균 값 구하기 및 버블정렬 (0) | 2024.12.23 |