28 Şubat 2012 Salı

Taslak fonksiyon yazarak verilen değerlerin en büyüğünü bulmak (c++)

Template (taslak) fonksiyon yazmakta zorlanan mühendislik okuyan
arkadaşlarım için küçük bir örnek vermek istedim
Template fonksiyonların amacı aynı fonksiyonu birden fazla
türde veriyle kullanmaktır.
Mesela en büyük bulma fonksiyonunda hem char hem int cinsleri için
geçerli olabilecek fonksiyonlar yazabiliriz.
Şimdi arkadaşımın ricası üzerinde verilen 3 aynı türde değerin
en büyüğünü bulma fonksiyonunu yazıyoruz.

#include
using namespace std;
//T kullanacağımız cinsi belirten kısaltma oluyor.
template <class T> // bu göstergeyi kesinlikle template fonksiyon tanımlarken kulanmalı
T ucenbuyuk (T a, T b,T c) {
T sonuc1;
T sonuc2;
sonuc1 = (a>b)? a : b;
//bu kısa yazılımın anlamı a b den // buyukse a,aksi halde b sonuc1 e eşittir demek.
//if ve else kullanılarak aynı şeyler yapılabilir.
sonuc2 = (sonuc1>b)? sonuc1 : b;
//sonuc1 a ile b nin büyüğü sonuc2 ise sonuc1 ile c nin büyüğü olduğundan
// sonuc2 en büyük değer oluyor bu yüzden sonuc2 bizim max değerimiz oluyor
return (sonuc2);
}
Peki template olarak tanımladığımız bir fonksiyonu nasıl kullanabiliriz? hemen örnekleyelim

int main ()
{
int i=5, j=6, k=7,l;
char l='a', m='b', n='c',r;
l=ucenbuyuk<int>(i,j,k);
n=ucenbuyuk<char>(l,m,n);
cout << k << endl;
cout << n << endl;
return 0; }
Yani görüldüğü üzere ucenbuyuk<int>(i,j,k) diyerek kullandığımız fonksiyonda göstergesini
kullanarak bu fonksiyonu int olarak çağırcağımızı belli ediyoruz.

Hiç yorum yok:

Yorum Gönder