Özellikle nesne yönelimli programlama hakkında C++ 'da bir birinci sınıftayım. Ve şimdi benim öğrenme sırasında bir sorunum var.Sanal kalıtımda kurucu emri
Orada izleyen bir sınıf hiyerarşisi:
class Class{};
class Base:public Class{};
class Derived1:virtual public Base{};
class Derived2:virtual public Base{};
class MI:public Derived1,public Derived2{};
class Final:public MI,public Class{};
Ve şimdi bir final sınıf nesnesinin tanımı için yapıcı sırası ne olduğunu bilmek istiyorum. structure of class inheritance http://hi.csdn.net/attachment/201203/16/2712336_1331902452BziD.jpg
Ben Sanal taban sınıfları hep bakılmaksızın miras hiyerarşisinde nerede görüntüleneceğini önceden nonvirtual tabanına sınıfları inşa edilir biliyorum:
Ben bir diyagram çizin. Kafam karıştıran şey, eğer Sınıf Sınıfı kurucusu Tabandan önce ise ve Sınıfın yapıcısı iki kez çağrılırsa. Ve neden?
Birisi cevabımı söyleyebilir mi? Daha detaylı, daha iyi.
Tembel bir şekilde anlaşılması oldukça kolaydır. Bir program oluşturun. Yapıcılarınızın her birine hata ayıklama cout ifadeleri koyun (.e.g "Ben Temel Yapıcıyım!"). Cout ifadelerini takip ederek inşaat sırasına uyun. –
uyarı: Belirsizliğe bağlı olarak 'Final' 'temeline' Class' erişilemediğinden –
@ 0A0D: Tabii ki bu sadece derleyicinin el altında olmasını nasıl sağladığını anlatıyor. Bu senin için yeterince iyi olabilir, ama belki de değil. :) –