July 16, 2009

"c" nesnesini writeln içinde kullanırken c.toString() şeklinde bir çağırma yapmadık. Ozaman writeln, içinde kullanılan bir nesnenin toString() adında bir fonksiyonu varsa bunu otomatik olarak mı çağırıyo. Yoksa ben mi saçmaladım :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2009

Alıntı (acehreli):

>

Alıntı (acehreli):

>

Bu arada, Digital Mars'ın belgeleri bana o kadar da kullanışlı gelmedi. Henüz Object'in bütün üye fonksiyonlarını öğrenebilmiş değilim... :(

Buldum! :)

http://www.digitalmars.com/d/2.0/phobos/object.html

Sol taraftaki menüde isimleri std. ile başlayan listenin üstündeki std başlığının üstündeki küçücük object'e tıklamak gerekiyormuş! :D

Ali

Saklamışlar galiba! :-) Bana zaten oldum olası dökümantasyon belgeleri anlaşılmaz :nuts: gelmiştir ..

Ben de Alexandrescu'nun kitabını (http://www.amazon.com/exec/obidos/ASIN/0321635361/classicempire) bekliyorum ama sanırım 1/3'ü tamamlanmış. Bir de açıkcası şimdiye kadar Alexandrescu'nun hiç bir kitabını okumadım (bakmak hariç). Umarım en az bir Josuttis ya da Koenig gibi anlaşılır, akıcı bir üslubu vardır. Kitaba da şablon olayına yaklaştığı gibi yaklaşmaz. Demek istediğim umarım Loki'nin, ya da Boost kütüphanelerin kaynak kodları gibi bir şey çıkmaz karşımıza :huh:

Bu arada kitabın ilk üç bölümü üyelik yöntemiyle çalışan bir sitede (http://my.safaribooksonline.com/9780321659538) yayınlanmaya başlamış. Ve daha ilk konu için çok ilginç bir başlık seçmiş : '"'D'"iving In'

Not: Koddaki a:" ~ to!string(a_) kısımları da parantezli olarak a:" ~ to!'('string')'(a_) olacak sanırım. Artık D kodunu da derleyici olmadan yazmaya başlamışsınız :)

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2009

D, C++'nın kesinlikle karşı olduğu bir şey yapıyor... :) Bütün sınıf sıradüzeninin en tepesinde 'Object' isimli bir sınıf var.

Her sınıf o yolla bir 'toString()' ediniyor ama o 'toString()''in gerçekleştirmesi pek kullanışlı değil: sınıfın ismini yazıyor. Kod bloklarını açıklama olarak kaldırmanın yolu D'd '/+ ... +/' açıklamaları kullanmak. Öyle yapınca:

..
/+
   string toString()
   {
       return "C{a:" ~ to!string(a_) ~
               " b:" ~ to!string(b_) ~
               " c:" ~ to!string(c_) ~
               "}";
   }
+/

çıktı C nesneleri için 'deneme.C' oluyor:

Merhabadeneme.C - 1.2

Bu arada, Digital Mars'ın belgeleri bana o kadar da kullanışlı gelmedi. Henüz Object'in bütün üye fonksiyonlarını öğrenebilmiş değilim... :(

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2009

Alıntı (acehreli):

>

Bu arada, Digital Mars'ın belgeleri bana o kadar da kullanışlı gelmedi. Henüz Object'in bütün üye fonksiyonlarını öğrenebilmiş değilim... :(

Buldum! :)

http://www.digitalmars.com/d/2.0/phobos/object.html

Sol taraftaki menüde isimleri std. ile başlayan listenin üstündeki std başlığının üstündeki küçücük object'e tıklamak gerekiyormuş! :D

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 17, 2009

Alıntı (acehreli):

>

'to!string(a_)' doğru, çünkü şablon parametresi tek ise parantezlere gerek olmuyor.


   string toString()
   {
       return "C{a:" ~ to!string(a_) ~
               " b:" ~ to!string(b_) ~
               " c:" ~ to!string(c_) ~
               "}";
   }

Bende bu kısım parantezler olmadan hata vermişti. Bilmiyorum belki operatörlerin işlem önceliğinden ya da derleyiciden kaynaklanan bir problem olabilir. Şu an derleme imkanım olmadığı için deneyemiyorum. Akşam eve gidince tekrar denerim..

Sanal makineye isim olarak da benim aklıma da Dene gibi birşeyler geliyor..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 16, 2009

Doğrusu, Alexandrescu'nun üslubu zordur. :) Kendisi aslen Romen ve İngilizce'yi oldukça ağdalı kullanıyor. Hatta kesin günlük hayatta geçmeyen kelimeleri de thesaurus'tan bulup çıkartıyor. :) Ama çok şakacı olarak yazar. O açıdan zevklidir.

Ben de bir şeylere isim vermeyi düşünürken hep 'D' ile başlayanlar bulmaya çalışıyorum. Şu sıralarda o sanal makinayı kurmaya çalışıyorum... Onun ismini "de..." gibi birşey yapmaya çalıştım. Ama bulamadım. :)

'to!string(a_)' doğru, çünkü şablon parametresi tek ise parantezlere gerek olmuyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 17, 2009

En azından dmd 2 ile derleniyor ama bir uyarı veriyor: 'override' sözcüğünü yazmıyormuşum:

class BirÜye
{
..
   override string toString()
   {
       return to!string(değer_);
   }
};

Hataları azaltmak için bunun açıkça yazılmasını istiyorlar.

Ve çok ayıp bir şekilde de dmd'yi uyarılarını açmadan kullanıyormuşum! :blush: -w kullanınca oldu...

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 17, 2009
class BirÜye
{
   int değer_;

   this(int değer)
   {
       değer_ = değer;
   }

   override string toString()
   {
       return to!string(değer_);
   }

};

Bende override kullansam da aynı hatayı veriyor.

Alıntı:

>

dmd -w deneme2.d
deneme2.d(15): found '!' when expecting ';' following 'return statement'

Sanırım bu broblem benim derleyici sürümümün eski olmasından kaynaklanabilir. Gentoo paketi dmd-bin-2.008-r1 olarak geçiyor ve sanırım
http://ftp.digitalmars.com/dmd.2.008.zip dosyasını indirip kuruyor. Zaten birileri dmd'nin son sürümün eklenmesi için (http://bugs.gentoo.org/show_bug.cgi?id=269619) talepte bulunmuş bile ..

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

July 17, 2009

Alıntı (erdem):

>

Sanırım bu broblem benim derleyici sürümümün eski olmasından kaynaklanabilir. Gentoo paketi dmd-bin-2.008-r1 olarak geçiyor ve sanırım
http://ftp.digitalmars.com/dmd.2.008.zip dosyasını indirip kuruyor. Zaten birileri dmd'nin son sürümün eklenmesi için (http://bugs.gentoo.org/show_bug.cgi?id=269619) talepte bulunmuş bile ..

Gerçekten de sorun Gentoo ile birlikte varsayılan olarak gelen D derleyicisi sürümün eski olmasından kaynaklanıyormuş. O adreste verilen paketi kullanarak dmd 2.031 sürümüne güncelledikten sonra sorun düzeldi.

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

August 03, 2009

d dilinde siniflar icin constructor metodlar this ile mi yaziliyor? orneklerde gordugum kadariyla basitce soyle yapiyorsunuz:

class Sinif
{
	this (parametreler)
	{
		// islemler..
	}
}

dogru muyum?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]