반응형
1. 클래스 템플릿
- 클래스 코드를 생성하기 위한 코드다.
- 클래스 템플릿으로 생성한 클래스는 일반 클래스와 구별해 템플릿 클래스로 사용한다.
- 함수 템플릿처럼 클래스 선언 앞에 template<typename T> 를 기술한다.
- 메서드 정의 분리 시 모든 정의 앞에 template 예약어를 기술한다.
template<typename T>
class MyData
{
public:
MyData(T param) : data(param) { }
T getData() const { return data; }
operator T () { return data; }
void setData(T param) { data = param; }
private:
T data;
}
원하는 형식에 대한 접근을 원활하게 만들어준다.
* 개인적인 생각 : 같은 형식의 큰틀에 여러가지 작은틀들을 바꿔 끼우는 도장과 같은 느낌이다. 문법적으로는 C#의 Generic과 비슷한 용도인것 같다.
자료형의 타입에따라 코드를 전부다 만들지 않더라도 범용성있게 사용해서 생산성이 높아지는 구조인것 같다. 그리고 사용자의 사용시점, 컴파일시점에서 사용되는 클래스이기 떄문에, 아예 사용하지 않는다면 별개의 메모리 할당도 필요하지 않다고 한다.

반응형
'All Development' 카테고리의 다른 글
| C++) 상속과 형변환 (2) | 2024.05.01 |
|---|---|
| C++) 순수 가상 클래스 (0) | 2024.04.17 |
| C++) 가상 함수 작동원리 (0) | 2024.04.15 |
| C++) 가상 함수 (0) | 2024.04.03 |
| C++) 상속의 생정자와 소멸자 (3) | 2024.03.29 |