본문 바로가기
카테고리 없음

템플릿 실습

by ByteBridge 2013. 3. 9.
반응형



// 템플릿 테스트.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;

}


============================================================================


반응형