Arkadaşlarda nesne tabanlı programlamada ;
Bir şablon fonksiyon nasıl overload edilebilir?
Adept
4.3
Programlama dillerinde her fonksiyonun kendi adi olmasi gerekiyor ki hangi fonksiyonun calistirildigi tam olarak bilinsin. Ancak bu durum cesitli yollarla asilabiliyor. Buna da "overloading" deniyor. Yöntemleri de cok basit. JAVA altina actigin icin konuyu, JAVA üzerinden anlatiyorum. X objemiz var ve asagidaki gibi bir fonksiyonumuz var:


public int add(int p1, int p2) 
{
     return p1 + p2;
}

Görüldügü üzere bu fonksiyon iki int tipinden olan degiskeni toplayip, sonucu döndürüyor. Ancak float veya double türünden olan sayilari toplamak istersek ne yapacagiz? Overload kullanmadan baska isimli, ayni seyi yapan bir fonksiyon tanimlardik, ancak bu sekilde cok cabuk düzensiz olur objelerimiz. O yüzden:


public double add(double p1, double p2)
{
     return p1 + p2;
}

Üstteki fonksiyonun geri döndürdügü ve kabul ettigi argumanlar ilk fonksiyona göre farkli. Nesne tabanli programlama dilleri bu farki görebiliyor ve gereken fonksiyonu kullanilisina göre seciyor. Buna "overloading" deniyor. Baska bir örnek:


public Constructor()
{
     // nesneyi olustur...
}

public Constructor(int id)
{
     // nesneyi olustur...
     this.id = id;
}

Görüldügü üzere iki adet Constructor-Fonksiyonumuz var. Isimleri tabii ki ayni, cünkü objenin ismini tasimalari gerekiyor. Ancak argumanlari farkli, dolayisiyla ikisi de kullanilabilir. Buna da "overloading" deniyor.

Umarim anlasilir olmustur.

Üye Ol veya Giriş Yap

Bu forum başlığına mesaj atmak istiyorsanız hemen üye olun veya giriş yapın.