Bir kurucu temel sınıftan miras kaldığında sorunların neler olabileceği konusunda kafam karıştı. Cpp Astar Plus diyor ki,
Yapıcılar, diğer nesneler yeni nesneler oluşturdukları için diğer sınıf yöntemlerinden farklıdır, oysa diğer yöntemler mevcut nesneler tarafından çağrılır . Bu, yapıcıların miras alınmamasının bir nedenidir . Kalıtım, türetilmiş bir nesnenin temel sınıf yöntemini kullanabileceği anlamına gelir; ancak, yapıcılar söz konusu olduğunda, yapıcı işini yapana kadar nesne mevcut olmaz.
Nesnenin yapımı tamamlanmadan yapıcının çağrıldığını anlıyorum.
Nasıl (çocuk sınıfını miras eğer problemlere yol açabilir Ben çocuk sınıf üst sınıf yöntemini vb sadece üst sınıf yöntemini erişimi yok geçersiz kılmak mümkün olduğu anlamına devralan tarafından ana yapıcısı)?
Nesneleri oluştururken haricinde açıkça bir kurucudan bir kod içinden [henüz farkında olduğumdan değil.] Çağrılma zorunluluğu olmadığını biliyorum. O zaman bile, ebeveyn konstrüktörü çağırmak için bazı mekanizmaları kullanarak bunu yapabilirsiniz [cpp kullanma, kullanma ::
veya kullanma member initialiser list
, In java kullanma super
]. Java'da ilk satırda onu çağırmak için bir zorlama var, bunun ana nesnenin önce yaratıldığından emin olduktan sonra alt nesne inşaatının ilerlemesini sağlamak olduğunu anlıyorum.
Bunu geçersiz kılabilir . Ancak bunun bir sorun teşkil edebileceği durumlarla gelemem. Çocuk ebeveyn kurucuyu miras alırsa ne yanlış gidebilir?
Öyleyse bu sadece gereksiz işlevleri mirastan uzak tutmak için mi? Yoksa dahası var mı?