Alıntı (canalpay):
>Bana göre clearı çağırdığımızda bir daha sonlandırıcı ile çağrılmaması için not bırakılmalı.
Şu anda devam eden "crystal clear()" başlıklı konuda da ondan konuşuyorlar. Sonlandırılmış olan nesnenin 'vptr'larını silmekten bahsediyorlar. (vptr, her türün değişik davranması için her türde 'override' ile farklı tanımlanmış olan çok şekillilik işlevlerini barındıran tablo gösterdesidir. "Virtual function table pointer"dan gelir.)
Yani sonunda clear()'in her durumda nasıl doğru çalışacağını anladılar galiba. :)
Tekrar söylemek gerekirse, ben bu çabalarını doğru buluyorum. clear() yalnızca nesneyi sonlandırmalı; nesnenin oturduğu belleğin ne olacağı bizi ilgilendirmemeli.
Alıntı:
>Ve bence druntimeın şuan ki geliştiricileri(özellkle sean kelly) çöp toplayıcıya hakim değil diye düşünüyorum :-)
Çöp toplayıcı çok özel bir konu olduğu için doğru olabilir; ama ben kendisini çok beğeniyorum.
Alıntı:
>Ama hala çöp toplama ile ilgili bir hata vardı ve yeniden yazılacaktı.
Farklı yaklaşımlı bir çöp toplayıcı geliştiriliyor diye biliyorum.
Alıntı:
>> class selam
> {
> static bool değişti_mi=!bool.init;
> ```
Ama o herhalde 'static' olmayacak, değil mi. Yoksa 'selam' türünün bütün nesneleri tek 'değişti_mi''yi paylaşırlar. Onun değerini birisi değiştirse, hepsi etkilenmiş olur. O yüzden bence o 'static' olmamalı.
Alıntı:
> Bu notu bir biçimde clear kendi yapamaz sanırım?
Güzel düşünüyorsun. Evet, yapabilir. Her nesnenin boyu bu iş için bir 'bool' kadar büyümesin diye de vptr'ı temizleme yolunu düşünüyorlar. Daha etkin ama sonuçta aynı mantık: not bırakmak. Hem sonlanmış bir nesnenin hiçbir işlevinin çağrılması da beklenmeyeceği için vptr'ına ihtiyacı da yoktur.
Ali
--
[ Bu gönderi, <http://ddili.org/forum>'dan dönüştürülmüştür. ]