http://ddili.org/ders/d/yapilar.html
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
December 19, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
http://ddili.org/ders/d/yapilar.html Ali -- |
December 21, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı: >Şu sırada dersleri çok az kişinin izlediğini biliyorum. Belki ileride okuyanlar artınca eksiklerimi gösterenler de artar. ;) Belkide dersi takip edenler pek yaşam sürelerini takmıyordur :-) Her değişkenin sonu aynı ne de olsa. :-D (Benim ana düşüncem. İşi biten değişkenle alakam olmaz. İsterse yaşamı bitsin yada bitmesin. Ne de olsa hiç çok büyük bir program yazmadım. Php ile yaptığım şeylerde yüksek seviyenin faydalarını görüyordum. O yüzden yaşam süresine pek bakmam.) Yada belki Sınıf yapısından bir kaç şey biliyordur dersleri izleyenler. :-)
Bu arada öylesine bir baktım da sanki struct(yapı) öğrenmeye çalışacağımıza direk class öğrenmeye çalışsak daha iyi gibi. Sizce ? -- |
December 21, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Yeni başlayanların kafalarını karıştırabilecek bir şey farkettim. Başka yerlerde
dendiği zaman bir değişken yaşamaya başlıyordu. Yapılarda öyle olmuyor:
O satırlarda iki değişken yaşamaya başlamıyor. Yapı nesnesi oluşturulunca ne tür değişkenlerin yaşamaya başlayacağı bildiriliyor. Bu dersi bu noktayı belirtecek şekilde değiştireceğim. Şu sırada dersleri çok az kişinin izlediğini biliyorum. Belki ileride okuyanlar artınca eksiklerimi gösterenler de artar. ;) Ali -- |
December 21, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay): >Her değişkenin sonu aynı ne de olsa. :-D Orası kesinlikle doğru. Ben aslında yaşam sürecinin öteki ucunu düşünmüştüm: yapı tanımlanınca üyeler hemen yaşamaya başlıyor sanılmasınlar. :) Sanki daha önce bu konuda kafası karışan C'ciler duymuştum. Alıntı: >İşi biten değişkenle alakam olmaz. Çöp toplayıcılı dillerde öyle düşünülüyor. Ama bazen nesnelerin belirli bir anda sonlandırılmalarını isteriz. Örneğin değerli bir sistem kaynağını ellerinde tutuyorlardır ve hemen bırakmaları gerekebilir. C++'da "C++'ca düşünmenin" önemli bir parçası, nesne yaşam süreçleridir. Henüz D'de o kadar deneyimim olmadığı için bu konunun ne kadar önemli olacağını bilmiyorum. Bazen sonlandırıcı işlevlerde [destructor] önemli işler yapılır. Örneğin basit yapıda bir XML dosyası oluşturmada kullanılan bir yapı tasarlayalım. Bu yapının sonlandırıcısının görevi, '' diye açılmış olan XML elemanın '' diye kapatılması olsun:
O programı kullanarak şu çıktıyı üretmek istiyor olalım:
Gördüğün gibi bütün elemanlar düzgün, ve her açılan eleman doğru zamanda kapatılmış. Oysa, nesnelerin yaşam süreçleri çöp toplayıcıya bırakılınca yukarıdaki programın çıktısı şöyle oluyor:
Yani elimizde bozuk bir XML dosyası var! :) (Çöp toplayıcının durumuna ve kafasına göre başka bir çıktı da olabilirdi.) İşin güzeli, bu tür programlama yöntemlerini desteklemek için D'de 'scope' anahtar sözcüğü var. Programa dört tane 'scope' eklemek, o nesnelerin C++'da olduğu gibi, bulundukları kapsamdan çıkılırken sonlandırılmalarını sağlıyor ve çıktı istediğimiz gibi düzgün oluyor:
Alıntı: >Bu arada öylesine bir baktım da sanki struct(yapı) öğrenmeye çalışacağımıza direk class öğrenmeye çalışsak daha iyi gibi. Sizce ? Yapıları öğrenirken de sınıfları öğreniyoruz aslında. ;) Sınıfların daha becerikli yapılar olduklarını söyleyebiliriz. Alıntı: >Bunlar da sırf bir şey daha öğrenmem için yeni şeyler bulmuşlar. C'nin kullanıcı türü olarak tek olanağı 'struct' idi. C++ yapılara ve sınıflara bütünüyle aynı hakları verdi. (Tek fark, varsayılan üye erişim haklarındadır.) D, yapıları basitleştirerek C ile C++ arasında bir yere koydu. Ama sitelerinde "kimlikleri olmayan değerler" olarak düşünülmeye uygun oldukları yazıyor. Yapılar aslında sınıflardan daha alt düzey kabul edilmeliler. Ali -- |
December 21, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >Bu dersi bu noktayı belirtecek şekilde değiştireceğim. İki başlık ekledim: "Yapı tanımı, tür tanımıdır; nesne tanımı değildir" ve "static üyeler". http://ddili.org/ders/d/yapilar.html Ali -- |
December 27, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Can Alpay Çiftçi (canalpay) | Alıntı (canalpay:1261418566): >sanki struct(yapı) öğrenmeye çalışacağımıza direk class öğrenmeye çalışsak daha iyi gibi Ben de öyle düşünmeye başladım. :/ Belki de yapılara gereğinden fazla önem veriyorum. Daha basit oldukları için önce onlar üzerinde gösterip sonra sınıflara geçecektim ama daha nasıl kurulduklarından bile emin olmadığımı farkettim! :)
İyi değil, çünkü sağ tarafta üyelerden az sayıda ilk değer kullanılırsa nesne'nin son üyelerinin değerleri belirsiz kalıyor. İlk değerlerini bile almıyorlar.
İyi değil, çünkü hem ilk satırda zaten ilk değerlerini alıyorlar ve gereksizce bir daha değer veriyoruz; hem de yapının her kullanıldığı yerde elle yapmamalıyız. Bu işi kurucu halletmeli...
İyi değil, çünkü önce sağda bir hazır değer oluşturuluyor; ve o değer nesne'ye kopyalanıyor. Daha garibi, eğer yapıya bir de 'opCall' işleci eklersek, sağ taraf artık hazır değer kurma anlamından çıkıyor ve o 'opCall''u çağırmak anlamına geliyor! :) (Ben bu noktada koptum... :)) Şimdi İngilizce haber grubunda soracağım bakalım benimsenen yöntem nasılmış... Belki de yapıları boşvermek gerek... :) Ali -- |
December 28, 2009 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Alıntı (acehreli): >
> auto nesne = Tür(1, 2);
Önerilen kullanım oymuş. (Derslerde onu seçmem iyi olmuş! :) ) Alıntı: >yapıya bir de 'opCall' işleci eklersek, sağ taraf artık hazır değer kurma anlamından çıkıyor ve o 'opCall''u çağırmak anlamına geliyor! O davranış, yapıların kurucularının olmadığı zamandan kalmaymış. Şimdi kurucular olduğu için 'opCall''un böyle araya karışması da kalmayacak. Alıntı: >Şimdi İngilizce haber grubunda soracağım bakalım benimsenen yöntem nasılmış... Bunları oradan öğrendim zaten. Rahatladım... :) Ali -- |
January 07, 2010 Yeni ders: Yapılar | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Bu dersin çözümlerini tamamladım. Çözüm bağlantısın dersin sonunda: http://ddili.org/ders/d/yapilar.html Ali -- |