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 nesneDaireolduğ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;dnesnesininDaire'ye özgü parçaları ve sanal tablosu kopyalanmaz, yalnızca temelSekilkı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.

0 Yorumlar