Kullanıcı Aletleri

Site Aletleri


tr:cs:cpp:common:function

Fonksiyonlar

Fonksiyon Parametreleri ve Argümanları

Fonksiyon parametresi fonksiyon başlığında kullanılan değişkendir. Fonksiyonun içerisinde tanımlanan bir değişken ile aynı şekilde çalışır. Tek farkı fonksiyon çağrısında verilen değerler ile başlatılırlar.

void doSomething(int x, int y){
    std::cout<<x<<y<<std::endl;
}

Argüman ise fonksiyon çağrısında fonksiyona verilen değerlerdir.

doSomething(5, 6);

Değer ile Çağırma

Bir fonksiyon çağırıldığında;

  • Fonksiyonun parametreleri değişken olarak oluşturulurlar.
  • Argümanların değerleri bu değişkenlere kopyalanır.

Bu şekilde fonksiyon çağırmaya değer ile çağırma denir.

Referans ile Çağırma

Referanslar hakkında bilgilerinizi tazelemeniz gerekiyorsa, referanslar sayfasına bakınız.

Standart kütüphanede bulunan sınıfsal tipler değer ile çağırma için uygun değildir. Çünkü bu tiplerin kopyalanması maliyetlidir.

Fonksiyon parametresinde referans kullanırsak, fonksiyon çağırıldığında, bu referanslar uygun argümanlara bağlanır. Yeni bir nesne oluşturulmaz.

void printValue(std::string& y) // tip std::string& olarak değiştirildi
{
    std::cout << y << '\n';
} // y burada yok edildi
 
int main()
{
    std::string x { "Hello, world!" };
 
    printValue(x); // x şimdi referans olarak y referans parametresine geçirilir (ucuz)
 
    return 0;
}

Referans ile çağırma, fonksiyon her çağrıldığında bu argümanların kopyalarını oluşturmadan argümanları bir fonksiyona aktarmamızı sağlar.

Referans ile çağırma, bize argüman üzerinde işlem yapmamıza olanak sağlar. Değer ile çağırmada kopyalama gerçekleştiğini biliyoruz. Bu nedenle fonksiyonun içerisinde yapılan değişiklikler argümanı etkilemez. Referans ile çağırmada ise argümanın kendisi fonksiyona aktarıldığı için fonksiyon içerisinde yapılan değişiklikler argümanı etkiler.

Elbette referansımız const olmamalıdır. Çünkü fonksiyon içerisinde argüman üzerinde değişiklik yapmak istiyoruz.

void addOne(int& y) // y gerçek nesne x'e bağlıdır
{
    ++y; // bu, gerçek x nesnesini değiştirir
}
 
int main()
{
    int x { 5 };
 
    std::cout << "value = " << x << '\n';
 
    addOne(x);
 
    std::cout << "value = " << x << '\n'; // x değiştirildi.
 
    return 0;
}

UCH Viki'den alınmıştır. https://wiki.ulascemh.com/doku.php?id=tr:cs:cpp:common:function

tr/cs/cpp/common/function.txt · Son değiştirilme: 2025/05/02 21:52 Değiştiren: ulascemh