Davut KARA

Bilişim Sistemleri Mühendisi

Bu blog, 5 yıl önce, bilişim ve diğer konularda hakkında, makalelerime yer vermek amacı ile açılmıştır.

Compe 225 | C++ Ders 6 – Function Overloading Nedir ?

C++ Banner

FUNCTION OVERLOADING

Amaç:  Fonksiyonumuzun adını aynı şekilde kullanarak ona ek özellikler kazandırmak.

Mesela ilk derslerde bir örnek yapmıştım farkınınkaresi diye bu fonksiyon 2 adet parametre alıyordu ama ben bazende bu fonskiyonu 3 paremetre bazen 4 parametre almasını istiyorum bazende int değil de double da alsın double da return etsin istiyorum, ve tüm bunları yaparken benim fonksiyonumun adı aynı olsun. Çok şey istimiş gibi olabilirz ama aslında mantık basit.Fonksiyonun adını aynı veriyorum, parametre kısmınada diğerlerinden farklı olacak şekilde düzenliyorum. dolayısıyla aşağıdaki örnekte hepsini bir çırpıda anlıyoruz.

cfunctionoverloadingornek

Bu konuda böyle tek bilmeniz gerekenler.

  • (-) Parametrelerinin adının değişmesi fonksiyonu farklı kılmaz.
  • (-) 2 Function da parametreler aynı iken function return type değiştirilemez.
  • (+) Parametre sayısının diğerlerinden farklı olması.
  • (+) Paremetre sayısı aynı ise en az bir parametrenin type ı farklı olması.
  • (+) 2. Maddenin tersi olabilir yani parametreler farklıyken return type ı da değiştirebilirsiniz.

 

Yani aşağıdaki kodumuz hatalıdır.

#include <iostream>
using namespace std;
int farkininkaresi(int a,int b){
	int fark = a-b;
	return (fark*fark);
}
/*c,d olması ile a,b olması arasında bir fark yok, parametre sayısı aynı parametrelerin type ıda aynı.*/
double farkininkaresi(int c,int d){
	int fark = c-d;
	return (fark*fark);
}
int main(void){
	cout << farkininkaresi(3,5);
}

Compiler burada int olan fonksiyonamı yoksa double olan fonksiyonamı gideceğeni bilmiyor. Birkaç alıştırma yaparak bu konuyu halledebilirsiniz.

Yukardaki yazdığım maddeleri ezberlemenize gerek yok mantıklı düşününce sonuca ulaşacaksınız zaten.