16 Haziran 2010 Çarşamba

C++ da Function Template-Class Template

           Template in kelime anlamı taslaktır,c++ daki  kullanım şekli de kelime anlamına çok yakın bir kullanımdır. Fonksiyonu taslak olarak yazıyorsunuz ve  bu  fonksiyon farklı kullanım şekilleri  için esnek bir yapıya  sahip oluyor.
          C++ daki Function Template için  farklı tiplerde  kullanım esnekliği vardır.Bir  fonksiyonu farklı farklı tipler için ayrı ayrı yazmak yerine,tek bir  fonksiyon taslağı yazıp  bunu farklı tipler için kullanabilirsiniz.
          örneğin bir mutlak değer  fonksiyonun int veri tipi için şu şekilde yazarız:


        int mutlakdeger(int a){
      if(a<0)    return a;
       else return -a;
        }
    
      double veri  tipi için olanını şu şekilde yazarız:
                          
        double  mutlakdeger(double  a){
      if(a<0)    return a;
       else return -a;
        }
      
     long olan için ;
            long  mutlakdeger(long  a){
      if(a<0)    return a;
       else return -a;
        }
      
               yani bütün tipler için ayrı ayrı yazardık.Bunu  taslak şeklinde yazıp  bütün veri tipleri için kullanabilmek istediğimiz   zaman yapmamız gereken şey fonksiyonu template  şeklinde tanımlamak.

           Template kulllanımı şu şekilde: 


    template            //fonksiyonun başına yazılması gereken
     T mulakdeger (T a)                    //yukarda tanımladığımız template Tyi  veri tipi olarak  kullandık
  
             {

 if(a<0)    return a;
       else return -a;

         }
            int  main(){
              cout<<"int veri tipi için mutlak deger alma"<
              cout<<"double veri tipi için mutlak deger alma"<
             }
  bu şekilde kullanarak her veri tipi için ayrı yazma  gerekliliğinden kurtuluruz,kodlar kısalır fazla zaman  harcamak zorunda kalmayız.
          
    Template çeşitleri:

  •  template      //fonksiyonlar için kullanılır
  •  template                 //classı template şekilde kullanabilmek için,daha çok data                storage classlarda(container)  kullanılır
  •  template        //birden fazla  tip tanımlayabiliriz
       Class Template:
            templateler ayrıca classlar için de kullanılabilir,işlev olarak  functşon template gibidir
           
           template
class  deneme{
                    //  classın diğer  elemanlarının prototypeları  yazılır
...............
       public int  denemefonk(T  ){}
........... 
            };
            implementasyonlar:

         template
          deneme::denemefonk(T  a){...........}

           int main(){
         denemenesne;
          ...........
       }

  şeklinde kullanılır............
     



DERYA GÜNDÜZ

1 yorum:

Adsız dedi ki...

Cok tesekkür ederim, bir konu ancak bu kadar basit ve bu kadar anlasilabilir tarzda aciklanabilir..

 
Facebook

Bizi takip edin!

ESOGÜ Bilişim GünleriESOGÜ Bilişim Günleri