// 템플릿 테스트.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//
#include "stdafx.h"
#include "cData.h"
int _tmain(int argc, _TCHAR* argv[])
{
cData<int> Ob_cData(10);<사용자가 입력한 타입>에 따라서 데이터의 타입이 달라진다.
Ob_cData.SetData(10);
cout<<Ob_cData.GetData()<<endl;
Ob_cData.ShowInfo();
cData<double> Ob2(2.3);
Ob2.ShowInfo();
Ob2.SetData(3.2);
Ob2.ShowInfo();
return 0;
}
================================================================================
#pragma once
template <typename T>
class cData
{
private:
T data;
public:
cData(T _data);
void SetData(T _data);
T GetData(void);
~cData(void){};
void ShowInfo(void);
};
//템플릿 클래스의 맴버함수는 절대로 파일 분할로 구현하면 안된다
//따라서 헤더 파일항에 몸체까지 같이 구현해준다.
template <typename T>
cData<T>::cData(T _data)
:data(_data)
{
}
template <typename T>
void cData<T>::SetData(T _data)
{
data =this->data+ _data;
}
template <typename T>
T cData<T>::GetData()
{
return data;
}
template <typename T>
void cData<T>::ShowInfo(void)
{
cout<<data<<endl;
}
============================================================================