# PRIVATE

λ‚΄κΊΌ νƒ¬ν”Œλ¦Ώ

ROHA__ 2010. 9. 6. 11:52


 
#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
λ°˜μ‘ν˜•
SMALL