#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();
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;
}
'# 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 |