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...)에 따라 템플릿이 형성이 된다.