티스토리 뷰
1. 함수 템플릿 참조: http://petra.tistory.com/1095
2. 클래스 템플릿 template
template <typename T>
class Data
{
T data;
public:
DATA(T d) { data = d; }
void SetData(T d) { Data = d; }
T GetData() { return data; }
};
void main()
{
Data<int> d1(10); // 정수형일때
Data<char> d2('a'); // 문자형일때
}
=======================
클래스 선언과 정의를 분리할때
template <typename T>
class Data
{
T data;
public:
DATA(T d);
void SetData(T d);
T GetData();
};
template <typename T>
DATA<T>::DATA(T d) { data = d; };
template <typename T>
void DATA<T>::SetData(T d) { Data = d; };
template <typename T>
T DATA<T>::GetData() { return data; };
처럼 해준다. 이때 선언과 정의는 하나의 파일에 같이 존재해야 한다. (헤더파일(.h)과 소스파일(.pp) 로 나눠질 수 없다.)