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: aşırı yükleme, cpp,