Menu
Coddy logo textTech

Referans ile Geçme

Coddy'nin C++ Journey'sinin Mantık & Akış bölümünün bir parçası. Ders 41 / 56.

Fonksiyonlara argüman geçirdiğinizde, C++ normalde değerlerin kopyalarını oluşturur. Bu, fonksiyon içindeki değişikliklerin orijinal değişkenleri etkilemediği anlamına gelir. Referans ile geçme (Pass by reference), fonksiyonların doğrudan orijinal değişkenlerle çalışmasına izin vererek bu davranışı değiştirir.

Referans ile geçirmek için, fonksiyon bildiriminizde parametre türünden sonra & sembolünü ekleyin:

void doubleValue(int& number) {
    number = number * 2;  // Orijinal değişkeni değiştirir
}

Bu fonksiyonu çağırdığınızda, fonksiyon içindeki parametre üzerinde yapılan herhangi bir değişiklik, içeri aktarılan orijinal değişkeni doğrudan değiştirecektir. Bu, bir fonksiyonun kendi argümanlarını değiştirmesini istediğinizde veya kopyalamanın verimsiz olacağı büyük nesnelerle çalışırken özellikle yararlıdır.

Referans ile geçme (pass by reference), veri kopyalama yükünü ortadan kaldırarak programlarınızı, özellikle vektörler veya map'ler gibi karmaşık veri yapılarıyla çalışırken daha hızlı ve bellek açısından daha verimli hale getirir.

challenge icon

Görev

Kolay

Değişkenleri işlev parametreleri aracılığıyla doğrudan değiştirerek başvuru ile geçirmeyi gösteren bir işlev oluştur. Bu görev, & sembolünün işlevlerin kopyalar yerine özgün değişkenlerle çalışmasını nasıl sağladığını anlayıp anlamadığını sınayacak.

Aşağıdaki girdiler sağlanacaktır:

  • İlk sayıyı temsil eden bir tamsayı value1
  • İkinci sayıyı temsil eden bir tamsayı value2
  • Üçüncü sayıyı temsil eden bir tamsayı value3

Programın şunları yapmalıdır:

  1. Başvuru yoluyla üç tamsayı parametresi alan, tripleValues adlı bir işlev oluştur
  2. İşlevin içinde her parametreyi 3 ile çarp
  3. Ana işlevde üç girdi değerini oku ve bunları değişkenlerde sakla
  4. İşlevi çağırmadan önce özgün değerleri yazdır
  5. Üç değişkenle tripleValues işlevini çağır
  6. Değiştirildiklerini göstermek için işlev çağrısından sonra değiştirilmiş değerleri yazdır

Aşağıdaki tam çıktı biçimini kullan:

İşlev çağrısından önce:

Original values: [value1] [value2] [value3]

İşlev çağrısından sonra:

Tripled values: [new_value1] [new_value2] [new_value3]

İşlev imzası, başvuru ile geçirmeyi belirtmek için her parametre türünden sonra & sembolünü kullanmalıdır: void tripleValues(int& a, int& b, int& c). Bu, işlevin kendisine geçirilen özgün değişkenleri doğrudan değiştirmesini sağlar ve değer ile geçirme ile başvuru ile geçirme arasındaki temel farkı gösterir. main içindeki değişkenler, işlev çağrısından sonra kalıcı olarak değişecektir; bu da işlevin kopyalar yerine özgün bellek konumlarıyla çalıştığını kanıtlar.

Kendin dene

#include <iostream>
using namespace std;

// TODO: tripleValues fonksiyonunu burada oluşturun

int main() {
    // Giriş değerlerini oku
    int value1, value2, value3;
    cin >> value1 >> value2 >> value3;
    
    // Orijinal değerleri yazdır
    cout << "Original values: " << value1 << " " << value2 << " " << value3 << endl;
    
    // TODO: tripleValues fonksiyonunu burada çağırın
    
    // Değiştirilmiş değerleri yazdır
    cout << "Tripled values: " << value1 << " " << value2 << " " << value3 << endl;
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C++ derleyicisi