Referans parametreleri
- C++ kursu
- Başlangıç
- Ders 73/116
- 5 dk
Fonksiyona referansla geçme ve değişikliğin yansımasını öğrenirsin.
Referans parametreleri
Bir fonksiyon parametresini referans olarak tanımlarsan, çağıran tarafın değişkenini doğrudan değiştirebilirsin. Yazımı: void addOne(int& n). & işareti parametrenin kopya değil referans olduğunu belirtir.
Böylece addOne(x) çağrısı x'in kendisini değiştirir; kopyasını değil. Değerle geçişte değişiklik yansımaz, referansla geçişte yansır. Büyük nesneleri kopyalamamak için de referans parametre tercih edilir.
Değerle ve referansla geçiş
Değerle geçişte parametre, argümanın kopyasıdır; fonksiyon içindeki değişiklik çağırana yansımaz. Referansla geçişte parametre, argümanın kendisine bağlı bir diğer addır; değişiklik anında yansır.
void f(int n) değerle, void f(int& n) referansla geçiştir. İkisi arasındaki tek görsel fark & işaretidir; ama davranış tamamen farklıdır. Referansla geçiş, fonksiyondan birden fazla değer döndürmek için de kullanılır.
Uygulama addOne fonksiyonu
void addOne(int& n) fonksiyonunu tanımla; gövdede n = n + 1; yaz. main içinde int x = 5; tanımla, addOne(x) çağır, x'i std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
// addOne fonksiyonunu tanımla
int main() {
// x değişkenini tanımla
// addOne çağrısı ekle
// x'i yazdır
return 0;
}Örnek çözüm
#include <iostream>
void addOne(int& n) {
n = n + 1;
}
int main() {
int x = 5;
addOne(x);
std::cout << x << "\n";
return 0;
}Beklenen çıktı
6
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bu kod çalışınca x'in değeri ne olur?
void addOne(int& n) {
n = n + 1;
}
int main() {
int x = 5;
addOne(x);
std::cout << x;
return 0;
}- 5
- 6 Doğru cevap
- 0
- Hata verir
Açıklama: addOne(x) referansla geçtiği için x artar: 5 → 6.
2 İfadeyi anlamına eşle
| Kavram | Anlamı |
|---|---|
int& n |
Referans parametre |
addOne(x) |
Çağrı |
n = n + 1 |
Gövde |
x |
Argüman |
3 Referans parametresi
void addOne(int____ n) { n = n + 1; }
void addOne(int& n) { n = n + 1; }
Açıklama: void addOne(int& n) referansla geçiştir.