Metotları aşırı yüklemek

Yazar : zafer 12. Ekim 2009 18:53

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.

Tags: ,

C++ Notları

Yorum ekle




  Country flag
biuquote
  • Yorum
  • Canlı önizleme
Loading


Zafer Günlükleri © 2008 - 2012 Zafer'in kişisel paylaşım sitesi.
BlogEngine.NET 2.0.0.36 | Tema : Mads Kristensen | Düzenleyen : Zafer Çelenk
Oturum Aç | APML ile filtrele

Anket

D dilini duydunuz mu?




Sonuçlar

Projeler

Galeri

Takvim

<<  Mayıs 2012  >>
PaSaÇaPeCuCuPa
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Yazıları takvimde göster

Satranç

I play chess at Chess.com!

Son Yorumlar

Comment RSS

Yasal Uyarı

Bu site görüşlerin paylaşıldığı kişisel bir blogdur. Site içeriğinden meydana gelebilecek sorunlardan site sahibi sorumlu değildir. Yorumlar site sahibi tarafından onaylandıktan sonra yayınlanacaktır.