CodeBlanks Logo Icon CodeBlanks

Özet - Referanslar

Referans, const referans ve güvenliği birleştirerek bir takas fonksiyonu yazarsın.

Özet - Referanslar

Bu grupta referansların temel araçlarını öğrendin: tanımlama, referans parametreleri, const referans ve dangling referans tehlikesi. Referanslar, C++'ın güvenli ve verimli kod yazmanın önemli bir aracıdır.

İki ödev var. Birincisi, iki referans parametreli bir swap fonksiyonu yazacaksın. İkincisinde, const std::vector<int>& parametreli bir printSum fonksiyonu tanımlayacaksın. Her ikisi de öğrendiklerini birleştirir.

Uygulama swap fonksiyonu

void swap(int& a, int& b) fonksiyonunu tanımla; gövdede bir int t geçici değişkeni kullanarak a ve b'yi değiştir. main içinde int x = 1, y = 2; tanımla, swap(x, y) çağır, x ve y'yi aynı satırda boşlukla yazdır.

Başlangıç kodu

main.cpp
#include <iostream>

// swap fonksiyonunu tanımla

int main() {
    // x ve y değişkenlerini tanımla
    // swap çağrısı ekle
    // x ve y'yi yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>

void swap(int& a, int& b) {
    int t = a;
    a = b;
    b = t;
}

int main() {
    int x = 1, y = 2;
    swap(x, y);
    std::cout << x << " " << y << "\n";
    return 0;
}

Beklenen çıktı

2 1

Uygulama printSum fonksiyonu

void printSum(const std::vector<int>& v) fonksiyonunu tanımla; gövdede int sum = 0; ile başla, range-based for ile her elemanı sum'a ekle, sum'u yazdır. main içinde bir std::vector<int>'e 3 ve 6 ekle, printSum çağır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <vector>

// printSum fonksiyonunu tanımla

int main() {
    // Vektörü tanımla ve sayıları ekle
    // printSum çağrısı ekle
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <vector>

void printSum(const std::vector<int>& v) {
    int sum = 0;
    for (int n : v) {
        sum += n;
    }
    std::cout << sum << "\n";
}

int main() {
    std::vector<int> nums;
    nums.push_back(3);
    nums.push_back(6);
    printSum(nums);
    return 0;
}

Beklenen çıktı

9

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bu kodun çıktısı nedir?

main.cpp
void swap(int& a, int& b) {
    int t = a;
    a = b;
    b = t;
}
int main() {
    int x = 1, y = 2;
    swap(x, y);
    std::cout << x << " " << y;
    return 0;
}
  • 2 1 Doğru cevap
  • 1 2
  • 1 1
  • Hata

Açıklama: swap(x, y) referansla geçtiği için x ve y yer değiştirir.

2 swap gövdesi

Soru
void swap(int& a, int& b) { int t = ____; a = b; b = t; }
Cevap
void swap(int& a, int& b) { int t = a; a = b; b = t; }

Açıklama: int t = a; a'yı geçici değişkene kaydeder.

3 Referans araçlarını eşle

Kavram Anlamı
int& r = x Diğer ad
int& n Referans parametre
const int& n Salt okunur
void swap(int&, int&) İki referans

Başlangıç bölümündeki tüm dersler