λ΄κΊΌ ν¬νλ¦Ώ
#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;
}