Referans fonksiyonu, bir değişkenin adresini (bellekteki yerini) başka bir fonksiyona göndermemizi sağlayan bir yöntemdir. Böylece fonksiyon, değişkenin kendisiyle doğrudan çalışabilir ve üzerinde değişiklik yapabilir.
C++ dilinde referans tanımlamak için değişkenin türünün yanına '&' işareti koyarız.
Örnek:
void arttir(int &sayi) {
sayi = sayi + 1;
}
Bu örnekte, 'sayi' değişkeni referans olarak tanımlanmıştır. Yani, 'arttir' fonksiyonu çağrıldığında, ana programdaki 'sayi' değişkeninin adresi fonksiyona gönderilir. Fonksiyon içindeki 'sayi' değişkenine yapılan herhangi bir değişiklik, ana programdaki 'sayi' değişkenini de etkiler.
Diyelim ki bir sayının karesini alan ve sonucu aynı değişkene atayan bir fonksiyon yazmak istiyoruz:
void kareAl(int &sayi) {
sayi = sayi * sayi;
}
Bu fonksiyonu aşağıdaki gibi kullanabiliriz:
int num = 5;
kareAl(num);
// num değişkeninin değeri artık 25 olacak
Gördüğünüz gibi, 'kareAl' fonksiyonu 'num' değişkeninin değerini doğrudan değiştirdi.
Referans fonksiyonları, değişkenlerin adreslerini kullanarak fonksiyonların değişkenler üzerinde doğrudan değişiklik yapmasını sağlar. Bu, bazı durumlarda daha verimli ve kullanışlı olabilir. Ancak yan etkilere dikkat etmek ve programın diğer kısımlarını etkilemediğinden emin olmak önemlidir.