Fonksiyon Yüklemesi ve Prototipleri
Şimdi C++ `ın getirmiş olduğu başka bir
özellikten daha bahsedeceğiz. Aynı isimli fonksiyonların farklı
işlemler yapabilmesi. Aynı şekilde çağrılacaklardır, fakat
derleyici bunların farklı fonksiyonlar olduğunu anlayacaktır. Tabi
bunun şartları var. Fonksiyonların tipleri yada bunların sıraları
farklı olmalıdır. Fonksiyonların başında kalıbın tanımını
yaparken, parametre listesinden bahsetmiştik. Bu parametreler
belli değerler döndürürler, işte derleyicide bu döndürdüğü
değerlere yani imzalarına göre bunların farklı fonksiyonlar
olduğunu anlayacaktır. Tabi bunların sıraları da farklı
fonksiyonlar gibi gözükmelerini sağlayacaktır. Hemen olayı anlamak
için örnek verelim.
double Ortalama(int *dizi, int uzunluk){
//kodlar
}
double Ortalama(double*dizi, int uzunluk){
//kodlar
}
Görüldüğü gibi bu iki fonksiyon da bir
birinden farklıdır. Her ne kadar isimleri aynı olsa da...
Fonksiyon tanımlamasının fonksiyon
kullanılmadan önce yapılmış olması gerekmektedir.
Fonksiyonlarımızı header başlığı altından çağırabiliriz. Mesela
ben daha önce bir Faktoriyel fonksiyonu yazip bunu Fakt.h olarak
saklıyorum. Programımı yazarken #include <Fakt.h> diyerek bunu
çağırıyorum ve programda yazdığım "5'in faktoriyelini al" dediğim
zaman direk Fakt.h taki fonksiyonda işlemi yapıp aldığı değeri
programa verir. Mümkün olduğunda C++ ın kendi kütüphanelerindeki
hazır fonksiyonları kullanmaya çalışacağız. Var olan bir
fonksiyonu yeniden yazmanın pek bir anlamı olmaz. İleride
kütüphanelerdeki fonksiyonları da mümkün olduğunca göreceğiz
|