SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Nesne ile Referans arasındaki ilişkiyi açıklamak.
- “const referans neyi sınırlar?” sorusuna gerekçeli yanıt vermek.
- Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.
Çalışma mantığı ve güven sınırı
Değiştirmeyen fonksiyon parametresinde const referans kullanmak niyeti açık eder. Referansın başlatılması gerekir ve başka nesneye yeniden bağlanmaz. Yerel nesneye referans döndürmek, nesne kapsam sonunda yok olacağı için geçersiz erişim üretir. Dönüşte değer semantiği çoğu zaman daha açık bir sahiplik sözleşmesidir.
Açıklamalı örnek
Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.
#include <iostream>
void increment(int& value) { ++value; }
int main() {
int count{4}; increment(count);
std::cout << count;
}Beklenen sonuç ve yorumu
5 yazılır; işlev asıl nesneyi değiştirir.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| Değer parametresi | Kopya değişebilir | Çağıranın nesnesi ayrıdır |
| Referans parametresi | Asıl nesne değişebilir | Takma ad kullanılır |
| Yerel referans dönüşü | Kaçın | Nesne ömrü sona erer |
Uygulama görevi
Parametreyi değerle alacak biçimde değiştirin ve çağıranın neden değişmediğini açıklayın.
- İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
- Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
- Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.
Sık yapılan hata ve düzeltme yönü
Yerel değişkene referans döndürmeyin.
Kendinizi sınayın
const referans neyi sınırlar?
Açıklamalı yanıt: O erişim yolu üzerinden nesnenin değiştirilmesini sınırlar; nesnenin bütün programda değişmez olduğunu söylemez.
İlgili derslerle ilerleyin
- C++ enum: Durumları güvenilir biçimde adlandırma
- C++ işaretçileri: Adres ile sahipliği ayırma
- C++ struct: İlgili verileri bir sözleşmede toplama
- C++ dizileri: Sabit boyut ve sınır güvenliği
Teknik başvuru
Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.
