Forum: Ders Arası RSS
Neyi Kaçırıyorum?
Şablonlar - Şablon özellemeleri hakkında-
Avatar
mert #1
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Neyi Kaçırıyorum?
Şablonlar dersinde şablon özellemeleri başlığında özetlenen kodu anlama sırası ile takip ediyorum:
İmport std.stdio;
 
struct Nokta
{
    int x;
    int y;
}
 
T giriştenOku(T : Nokta)(string soru)
{
    writefln("%s (Nokta)", soru);
 
    auto x = giriştenOku!int("  x");
    auto y = giriştenOku!int("  y");
 
    return Nokta(x, y);
}
 
void main()
{
  /// Notlarım
  auto merkez = giriştenOku!Nokta("Merkez?");
}

Derleme hatasından dolayı Burada durmak zorunda kaldım.  Sabah 05:15 sularında kaçırdığım bir şeyler var diyerek konuyu takip ederek yapı ve sınıf şablonları dersindeki örneğe kadar indim.
sonuçta, yukarıdaki kodu bir türlü çalıştıramadım.
Şablon özellemelerine kadar akıcı halde notlayarak süren diyalektik öğrenme yöntemim tam da bu noktada hata vermeye başladığından duraksadım. Muhtemelen çok basit bir detayı atlamış olduğumdan veya öğrenme eğrimin zayıfladığından dolayı bir şeyleri kaçırıyor olomalıyım, yoksa Ali hocam mutlaka altına bir not düşer; Arkadaşlar bu kod şu anki haliyle hata verir bunun nedenini de aşağıdaki konuda açıklayacağım derdi.
Sizce nereyi kaçırıyorum?
mert
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Açık olamadıysam kusura bakma(yın). :) Özellemenin yanında şablonun genel tanımının da bulunması gerekiyor:

T giriştenOku(T)(string soru)
{
    writef("%s (%s): ", soru, T.stringof);
 
    T cevap;
    readf(" %s", &cevap);
 
    return cevap;
}

giriştenOku!int("  x") gibi çağrılar o genel tanıma, giriştenOku!Nokta("Merkez?") gibi çağrılar da Nokta özellemesine gidecek.

Ali
acehreli (Moderatör) #3
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Yanıtlanan mesaj #1
mert:
mutlaka altına bir not düşer; Arkadaşlar bu kod şu anki haliyle hata verir bunun nedenini de aşağıdaki konuda açıklayacağım derdi.

Henüz sitede görünmüyor ama şöyle bir ek yaptım:

giriştenOku!int çağrıları şablonun genel tanımına, giriştenOku!Nokta çağrıları da şablonun özel tanımına yönlendirilecektir. Bu yüzden yukarıdaki kodları denemek istediğinizde giriştenOku şablonunun hem genel tanımını hem de Nokta özellemesini eklemiş olmanız gerekir.

Ali
Avatar
mert #4
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Açıklamanız için teşekkür ederim hocam. Forumdaki örnek kodlarda şablonlarla ilgili çok sayıda kod parçası gözüme çarpmakta. Derlemeli dillere aşina olmayan ama bir biçimde bu öğrenim isteğini D ile gerçekleştirmeyi isteyen arkadaşlarımız için alıştırmalarda çalışır kodların da görüntülenebiliyor olmasının; izlenirlik, takip edilirlik açısından faydası olacağını düşünüyorum.
Bilgilerinize,
Yeniden ve Teşekkürle.
mert
Bu mesaj mert tarafından değiştirildi; zaman: 2012-07-30, 12:00.
Avatar
Salih Dinçer #5
Üye Ock 2012 tarihinden beri · 1912 mesaj · Konum: İstanbul
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet, koç parçaları metin içerisinde olunca hem iyi hem kötü olabiliyor. İyi oluyor; çünkü baştan sona okurken çok uzun bir kod bile "kolaymış bu bea" dedirtiyor. Kötü oluyor; denemek istediğimizde biraz uğraştıyor. Belki de küçük düğmeler ile hafızaya ilgili dersin kodu kopyalansa ve biz de bunu istediğimiz yere örneğin www.dlang.org adresinin ana sayfasını yapıştırsak; çalışma bilgisayarımızdan bağımsız dersleri deneyebiliriz. Öyle ya, resmi yeni sitenin ana sayfasında kodları çalıştıran bir kutu var...:)
Bilgi paylaştıkça bir bakmışız; kar topu olmuş ve çığ gibi üzerimize geliyor...:)
Avatar
mert #6
Üye Ara 2010 tarihinden beri · 194 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ben kitaptan öğrenebilmeme yetecek kadarına razıyım aslında. Dünden beri o noktada takılıp kaldığımdan ilerleyemiyorum. Şu ana kadar izleyebildiğim bölümler şiir gibi akıyordu da burada takılınca haberdar etmenin iyi olabileceğini düşünmeden edemedim.
Zaman içinde öğrenmelerimize katkısı olabilecek hiçbir şeye de hayır demeyeceğimi not düşerekten :-)
mert
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-18, 22:30:21 (UTC -08:00)