programming/C++
Template.
설은
2009. 11. 17. 20:24
-사전적정의 : 모형자 (틀) [붕어빵기계 -0-;]
-구체화된 코드를 생성할 수 있는 추상화된 코드!!
(사용시에 생성)
-헤더에 정의 (추상적이기 때문에...)
ex1)
template <class T>
void Foo(T in)
{
cout<<in<<endl;
}
void main()
{
Foo(2);
Foo('a');
}
-------------------------------
void Foo<int> (int n)
{
cout<<in<<endl;
}
------------------------------
void Foo<char>(char in)
{
cout<<in<<endl;
}
ex2)
template <class T>
void Swap(T &in1, T &in2)
{
T *temp;
*temp = in 1;
in1=in2;
in2= temp;
}
void main()
{
int a=2, b=3;
Swap(a,b);
char c= 'a', d = 'z';
Swap(c,d);
Swap<char>(a,c); // 혹은 Swap<int> (a,c);
}
-----------------------------------
void Swap<int> (int &in1, int &in2)
{
int temp;
...
}
----------------------------------
void Swap<char> (int &in1, int &in2)
{
int temp;
...
}
=>각 형식(int, char...)에 따라 템플릿이 형성이 된다.
-구체화된 코드를 생성할 수 있는 추상화된 코드!!
(사용시에 생성)
-헤더에 정의 (추상적이기 때문에...)
ex1)
template <class T>
void Foo(T in)
{
cout<<in<<endl;
}
void main()
{
Foo(2);
Foo('a');
}
-------------------------------
void Foo<int> (int n)
{
cout<<in<<endl;
}
------------------------------
void Foo<char>(char in)
{
cout<<in<<endl;
}
ex2)
template <class T>
void Swap(T &in1, T &in2)
{
T *temp;
*temp = in 1;
in1=in2;
in2= temp;
}
void main()
{
int a=2, b=3;
Swap(a,b);
char c= 'a', d = 'z';
Swap(c,d);
Swap<char>(a,c); // 혹은 Swap<int> (a,c);
}
-----------------------------------
void Swap<int> (int &in1, int &in2)
{
int temp;
...
}
----------------------------------
void Swap<char> (int &in1, int &in2)
{
int temp;
...
}
=>각 형식(int, char...)에 따라 템플릿이 형성이 된다.