본문 바로가기

# PRIVATE

내꺼 탬플릿


 
#include<iostream>
using namespace std;

template<typename T> //T는 바꿔도 상관없음, 2,3개를 해도 OK! 항상반복!!!!

class Foo
{

private:

 T date;

public: //생성자
 Foo(T d);
 void SetDate(T d);
 T GetDate();
}; // Foo의 대한 선언부분만 있음!

template<typename T>
Foo<T>::Foo(T d)  // 요 틀은 항상! 똑같이
{
 date = d;
}

template<typename T>
void Foo<T>::SetDate(T d) //리턴타입 void
{
 date = d;
}

template<typename T>
T Foo<T>::GetDate()  // 리턴타입 T, T GetDate();의 인자가 없어서!
{
 return date;  // T date; 여서! return 값이 date!
}

int main()
{
 Foo<int> d1(0); //Foo<int>해주고! 객체변수 초기화해주기!
 d1.SetDate(10); // int로 해줬기에 (10)이 가능한거임!
 cout << "d1.GetDate : " << d1.GetDate() << endl;

 Foo<char> d2('a'); //Foo<char>해주고! 객체변수 초기화해주기! 글씨에는 ''해주기!
 cout << "d2.GetData : " << d2.GetDate() << endl;
 return 0;
}


 

 오케이된것!

#include <iostream>
using namespace std;
template <typename T> //T는 아무거나 해도됨
class Foo
{
private:
 T data;
public:
 Foo(T d);
 void SetData(T d);
 T GetData();
};
template <typename T>
Foo<T>::Foo(T d)
{
 data = d;
}
template <typename T>
void Foo<T>::SetData(T d)
{
 data = d;
}
template <typename T>
T Foo<T>::GetData()
{
 return data;
}
int main()
{
 Foo<int> d1(0);
 d1.SetData(10);  //Foo<int> d1(0);가 int 값이므로 d1.SetData(10);에 10
 cout << d1.GetData() << endl;
 Foo<char> d2('a');
 cout << d2.GetData() << endl;
 return 0;
}



 

728x90
반응형

'# PRIVATE' 카테고리의 다른 글

2010년 09월 09일  (0) 2010.09.09
2010년 09월 06일 월요일  (0) 2010.09.06
5 static 연습2  (0) 2010.09.06
4 static  (0) 2010.09.06
JAVA  (0) 2010.09.02