SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Temel sözleşme ile Alt tür arasındaki ilişkiyi açıklamak.
- “Kalıtım neden her kod tekrarının çözümü değildir?” 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ı
Türetilmiş nesne temel arayüzün beklentilerini bozmamalıdır. Polimorfik temel sınıf üzerinden silme gerekiyorsa sanal yıkıcı gerekir. Kaynak sahipliği ve kopyalama davranışını ayrıca düşünün. İlişki kullanma ilişkisi ise bileşim daha açık olabilir; sınıf adlarının benzemesi tek başına alt tür ilişkisi kurmaz.
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.
struct Sensor {
virtual ~Sensor() = default;
virtual int read() const = 0;
};
struct FixedSensor : Sensor {
int read() const override { return 21; }
};Beklenen sonuç ve yorumu
FixedSensor temel Sensor arayüzündeki read sözleşmesini karşılar.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| Gerçek alt tür | Kalıtım uygun olabilir | Temel sözleşme korunur |
| Sadece yardımcı kullanım | Bileşim düşün | Alt tür gerekmeyebilir |
| Temelden silme | Sanal yıkıcı | Doğru yıkım zinciri gerekir |
Uygulama görevi
İkinci bir sensör türü ekleyip aynı tüketici fonksiyonuna geçirin.
- İş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ü
Polimorfik nesneyi temel sınıf üzerinden silerken yıkıcı sözleşmesini gözden kaçırmayın.
Kendinizi sınayın
Kalıtım neden her kod tekrarının çözümü değildir?
Açıklamalı yanıt: Tekrar azaltma ile alt tür davranış sözleşmesi farklı ihtiyaçlardır; yanlış ilişki değişikliği zorlaştırır.
İlgili derslerle ilerleyin
- C++ kapsülleme: Geçersiz durumları önleme
- C++ polimorfizm: Arayüz üzerinden davranış
- C++ erişim belirleyicileri: Arayüz ve iç ayrıntı
- C++ dosyaları: Açma sonucunu ve ömrü yönetme
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.
