Eki122009

Metotları aşırı yüklemek

Yazan : Admin    12.10.2009 | C++ Notları

C++ dilinde metotları (fonksiyon) aşırı yükleyerek kullanabiliriz. Metotları aşırı yüklemek demek, aynı isme sahip birden çok metot tanımlamak demektir. Bunun yanında elbette bu tanımlamanın belli bazı şartları vardır. Öncelikle aşağıdaki örneğe bakalım

int Topla(int a, int b);
double Toplam(double a, double b);

Böyle iki fonksiyon tanımı C dilinde hataya sebep olurken bu tanımlama C++ dili için geçerlidir. Bunun geçerli olması C++ dilinde bulunan metot aşırı yükleme tekniğinden kaynaklanır. Yukarıdaki örnekte görüldüğü üzere metot aşırı yükleme çok büyük bir farklılık içermez. Hatta yukarıdaki örneği C dilinde şöyle gerçekleyebilirdik

int IntTopla(int a, int b);
double DoubleTopla(double a, double b);

Bu tanımlama C dilinde hatasız bir şekilde çalışacaktır ve bizim ilk örneğimizde yapmak istediğimizi birebir karşılamaktadır. Buna karşın C++ nesne yönelimli bir dildir. Siz ilk örneğimizi bir sınıfın üye metotları olacak şekilde tanımlarsanız bu sınıfı kullanacak programcılar için ismini bildikleri tek bir metot ile bu iki işlemi de gerçekleştirebilme olanağını onlara sağlamış olacaksınız.

Aynı işlemi yapan fakat farklı parametreler alan her metot için farklı isimler kullanmak, hem sınıfınızda karmaşıklığı arttırır, hem de böyle bir sınıfı ileride kullanacak programcıların aynı işi farklı parametrelere yapan her metodun ismini öğrenmesini gerektirir.

C++ derleyici aşırı yüklenmiş fonksiyonları ayırt etmek için fonksiyon ismi ve parametre tiplerine bakar, dolayısıyla aşırı yüklenmiş metotları tanımlarken bunları göz önünde bulundurmalısınız. Bunun yanında aşırı yüklenmiş fonksiyonların aynı sayıda parametre içermesine gerek yoktur.

Aşırı yüklenmiş metotlar kullanışlı olmasına rağmen herhangi bir karışıklığa karşı kullanılırken dikkatli olmak gerekir.

 



Etiketler: , ,

E-mail | Permalink | Trackback | Post RSSRSS comment feed 0 Yorum

Yorum ekle


(Gravatar simgesini gösterecek)

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading