SORU
4 Aralık 2010, CUMARTESİ


Alternatif sanal mekanizma uygulamaları?

C dinamik sanal mekanizma ile bağlama destekler. Ama sanal mekanizma anladığım kadarıyla derleyici bir uygulama ayrıntı ve standart sadece belirli senaryolar altında ne olacağını davranışları belirtir. Çoğu derleyici sanal tablo ve sanal gösterici yoluyla sanal yöntemi uygulamak. Ve evet bu nasıl çalıştığının farkındayım, benim sorum sanal işaretçiler ve tablo Uygulanmasına Dair ayrıntı değil Yani. Benim sorular şunlardır:

  1. Başka türlü sanal işaretçi ve sanal masa mekanizması dışında Sanal Mekanizması uygulayan herhangi Derleyiciler var mı? Gördüğüm kadarıyla çoğu(okuma g ,Microsoft visual studio) sanal tablo, işaretçi mekanizma kanalıyla uygular. Sanki orada başka bir derleyici uygulamaları hiç?
  2. Sadece sanal bir fonksiyon ile herhangi bir sınıfın sizeof derleyici bir gösterici (this vptr içinde) büyüklüğe sahip olacakSanal Ao ve tbh mekanizması verilen derleyici uygulama kendisi , bu deyimi, yukarıda hep doğru yaptım?

CEVAP
7 Aralık 2010, Salı


Nesneleri taban işaretçiler her zaman en etkili olduğu doğru değildir. Benim derleyici için kullanılan başka bir dil kullanmak-nesne işaretçileri benzer nedenler ama artık yok: yerine kullandığı ayrı bir veri yapısı olan haritalar nesnenin adresi için gerekli meta-veri: benim sistem bu olur şeklinde bilgi tarafından kullanım için çöp toplayıcı.

Bu uygulama, tek bir basit bir nesne için biraz daha fazla depolama maliyetleri, birçok üsleri ile karmaşık nesneler için daha verimli vekesinlikletek bir giriş dizideki tüm nesneler için eşleme tablosunda gerekli olduğundan sadece diziler için daha verimli. Benim özel uygulama da herhangi bir nokta nesnesi için iç bir işaretçi verilen meta-veri bulabilirsiniz.

Arama gezegendeki en iyi veri yapısı kullanıyorum çünkü son derece hızlı ve Depolama şartları çok mütevazı, gerçek: Judy diziler.

Ben de hayır C derleyici hiçbir işlem işaretçileri kullanarak biliyorum ama tek yolu bu değil. Aslında, esas olan sınıflar için hazırlama semantiği herhangi bir uygulama dağınık olun. Bu tam tür nesne inşa gibi bakın-testere zorunda olmasıdır. Bu semantik bir sonucu olarak, kendisine dahil ederse, karmaşık nesneleri durumda fonksiyonun parametre değişkeni oluşturulan, büyük nesneler, büyük setleri için kurşun ve nesne başlatma yavaş. Bu işlem muhtemelen teknik bir sonucu kölece bir sınıfın bir çalışma zamanı türü doğru olması şartı takip etmek ihtiyacı kadar her zaman değil. İnşaat sırasında bunun için iyi bir nedeni var aslında, kurucular yöntemi değildir ve olamaz beri makul bir sanal sevk kullanın: bu yıkıcı gerçek yöntem olduğundan imha için bana çok açık değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • engineerguy

    engineerguy

    10 Ocak 2010
  • ItZWaffleS420

    ItZWaffleS42

    9 EYLÜL 2011
  • TomKNJ

    TomKNJ

    26 ŞUBAT 2007