C++ programlama dili, yüksek performanslı, nesne yönelimli bir dil olarak bilinir. Bu dildeki fonksiyonlar, C++ programlarının temel yapı taşlarından biridir. C++ dilindeki fonksiyonlar, bir veya daha fazla işlevi yerine getirmek için kullanılır ve programcıların kodlarını daha modüler hale getirmelerine olanak tanır.
Fonksiyonların Tanımlanması ve Çağrılması
C++ dilindeki fonksiyonlar, belirli bir işlevi yerine getirmek için tasarlanmış kod bloklarıdır. Fonksiyonlar tanımlanırken, fonksiyonun adı, dönüş tipi, parametre listesi ve işlevin gövdesi belirtilir. Fonksiyonun adı, daha sonra programda çağrılacak olan ismidir. Dönüş tipi, işlevin geri döndüreceği değerin tipini belirtir. Parametre listesi, fonksiyona giriş argümanlarını tanımlar. Fonksiyonun gövdesi ise, işlevin gerçekleştireceği işlemleri içeren kod bloğudur.
Örnek fonksiyon tanımı:
int toplama(int sayi1, int sayi2) {
int toplam = sayi1 + sayi2;
return toplam;
}
Bu fonksiyon, toplama
adıyla tanımlanmıştır. Dönüş tipi int
olan ve iki adet int
tipinde parametresi bulunmaktadır. Fonksiyonun gövdesinde, sayi1
ve sayi2
parametreleri toplanarak toplam
adlı değişkene atılır ve toplam
değişkeni geri döndürülür.
Fonksiyonun çağrılması ise şu şekilde yapılır:
int sonuc = toplama(5, 3);
Bu örnek, toplama
fonksiyonunu çağırarak, 5
ve 3
parametrelerini geçirir ve sonuc
adlı değişkene fonksiyondan dönen değeri atar.
Fonksiyon Parametreleri ve Argümanları
Fonksiyon parametreleri, fonksiyonun işlevini yerine getirmek için gereken giriş değerlerini belirtir. C++ dilinde fonksiyon parametreleri, fonksiyon tanımının parantez içinde belirtilen listesi aracılığıyla tanımlanır. Parametrelerin tanımlanması, parametre ismi ve tipi arasında yer alan veri tipi belirteci kullanılarak yapılır.
Örnek fonksiyon tanımı:
void mesajYazdir(string mesaj) { cout << "Mesaj: " << mesaj << endl; }
Bu örnekte, mesajYazdir
fonksiyonu, bir string
tipinde parametre (mesaj
) alır ve bu parametreyi kullanarak bir mesaj yazdırır.
Fonksiyon argümanları, fonksiyona geçirilen giriş değerleridir. Argümanlar, fonksiyon çağrısı sırasında parantez içinde belirtilir ve parametrelerle eşleştirilir.
Örnek fonksiyon çağrısı:
mesajYazdir("Merhaba, Dünya!");
Bu örnekte, mesajYazdir
fonksiyonu, “Merhaba, Dünya!” argümanıyla çağrılır ve bu argüman, fonksiyon içindeki mesaj
parametresine atanır.
Fonksiyon Overloading
C++ dilinde fonksiyon overloading, aynı fonksiyon adı ile farklı parametre listelerine sahip birden fazla fonksiyon tanımlanmasıdır. Fonksiyon overloading, fonksiyonların daha modüler hale gelmesine ve aynı işlemi gerçekleştiren ancak farklı veri tipleriyle çalışan fonksiyonların tanımlanmasına olanak tanır.
Örnek fonksiyon overloading:
int carpma(int sayi1, int sayi2) {
return sayi1 * sayi2;
}
float carpma(float sayi1, float sayi2) {
return sayi1 * sayi2;
}
Bu örnekte, carpma
fonksiyonu, hem int
hem de float
tipinde iki parametre alacak şekilde iki kez tanımlanır. İlk tanım, int
tipinde iki parametre alır ve bu parametreleri çarparak sonucu geri döndürür. İkinci tanım ise float
tipinde iki parametre alır ve aynı işlemi gerçekleştirir.
Fonksiyonlar ve Dönüş Değerleri
C++ dilindeki fonksiyonlar, bir veya daha fazla değer döndürebilirler. Fonksiyonun dönüş değeri, fonksiyonun gerçekleştirdiği işlem sonucunu temsil eder.
Örnek:
int kareAl(int sayi) {
return sayi * sayi;
}
Bu örnekte, kareAl
fonksiyonu, bir tamsayı tipinde parametre (sayi
) alır ve bu parametrenin karesini hesaplayarak sonucu bir tamsayı değeri olarak döndürür.
Dönüş değeri olmayan fonksiyonlar ise void
anahtar kelimesi ile tanımlanırlar. Bu fonksiyonlar, herhangi bir değer döndürmezler.
Örnek:
void mesajYazdir(string mesaj) { cout << "Mesaj: " << mesaj << endl; }
Bu örnekte, mesajYazdir
fonksiyonu, bir string
tipinde parametre (mesaj
) alır ve bu parametreyi kullanarak bir mesaj yazdırır. Ancak bu fonksiyon herhangi bir değer döndürmez.
Fonksiyon Göstericileri
Fonksiyon göstericileri, C++ dilindeki fonksiyonların bellekteki adreslerini tutmak için kullanılan özel veri tipleridir. Fonksiyon göstericileri, fonksiyonların adreslerini taşıyan değişkenler olarak düşünülebilirler.
int topla(int sayi1, int sayi2) {
return sayi1 + sayi2;
}
int main() {
int (*fonksiyonGosterici)(int, int) = &topla;
int sonuc = (*fonksiyonGosterici)(3, 5);
cout << "Toplam: " << sonuc << endl;
return 0;
}
Bu örnekte, topla
fonksiyonunun adresi bir fonksiyon gösterici (fonksiyonGosterici
) değişkenine atanır. Daha sonra fonksiyonGosterici
değişkeni, fonksiyonun çağrılması için kullanılır. Fonksiyon göstericisi değişkeni, normal bir fonksiyon çağrısı gibi parantez içindeki parametreleri alır.