Sanal Fonksiyonlar, Referans ile Çok Biçimlilik ve Nesne Dilimleme (Object Slicing)

Soru Çözümü: C++ Sanal Fonksiyonlar ve Nesne Dilimleme (Object Slicing)
💡 Çözümü Gör (Tıkla - Öğren)
✅ Doğru Cevap: B) Daire Sekil

Detaylı Açıklama:

  • 1. Çağrı — cizdirReferans(d);: Fonksiyon parametresi referans (Sekil& s) olarak tanımlanmıştır. C++ dilinde çok biçimlilik (dinamik bağlama / dynamic dispatch) işaretçiler ve referanslar üzerinden çalışır. Gönderilen nesne Daire olduğu için sanal metot tablosu üzerinden türetilmiş sınıfın metodu çağrılır ve ekrana Daire yazdırılır.
  • 2. Çağrı — cizdirDeger(d);: Parametre değer ile (Sekil s) aktarılmıştır. Bu durumda nesne dilimleme (object slicing) meydana gelir; d nesnesinin Daire'ye özgü parçaları ve sanal tablosu kopyalanmaz, yalnızca temel Sekil kısmı kopyalanır. Bu nedenle doğrudan temel sınıfın metodu çalışır ve ekrana Sekil basılır.
  • Sonuç olarak ekrana Daire Sekil yazdırılır.

Yorum Gönder

0 Yorumlar