Özet - Referanslar
- C++ kursu
- Başlangıç
- Ders 76/116
- 5 dk
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
#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
#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
#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
#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?
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
void swap(int& a, int& b) { int t = ____; a = b; b = t; }
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 |