Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
parametre adları önemli değil.. farklı isimler bir şeyi bir şeyle karıştırmamak için mantıklı..
fonksiyon bildiriminde sadece değerleri yazabilirsiniz,
ama işlevin kendisinde diğerleri
ancak parametreleri her yerde aynı şekilde adlandırabilirsiniz, kod yazıcısı için bu şekilde daha uygun olur
Aynı eğitimde kodu aldım:
Yapıcıdaki garip an:
Neden burada bir iade ifadesi var?Bu operatörün bir kurucuda kullanıldığını ilk defa görüyorum. Sonuçta, aslında yapıcı otomatik olarak çağrılır. Ve bir çıkış yolu olacak. Yapıcıda bu operatörde bir anlam var mı?
Aynı öğreticide kodu aldım:
Yapıcıdaki garip an:
Neden burada bir iade ifadesi var?Bu operatörün bir kurucuda kullanıldığını ilk kez görüyorum. Sonuçta, aslında, yapıcı otomatik olarak çağrılır. Ve bir çıkış yolu olacak. Bu operatörün yapıcıda bir anlamı var mı?
Bu örnekte gerekli değildir, ancak erken bir çıkış gerektiğinde karmaşık başlatma mümkündür.
Yapıcı ve yıkıcı normal fonksiyonlardır. Yalnızca varsayılan kurucu ve yıkıcı otomatik olarak çağrılır. Kullanıcının aradığı geri kalanı.
Ders kitabı bu örneği polimorfizmle ilgili olarak verir:
Bir şeyi anlamadım. Çağrılar için hala alt işlev nesneleri kullanıyorsanız, ör. türetilmiş yöntemler CCircle ve CSquare , ardından GetArea() alanı, temel sınıftaki bildirimleri atlayarak hesaplanabilir. Onlar. temel sınıfta hiç sanal işlevler oluşturmayın, türevlerde normal bir yöntem oluşturun ve hepsi bu kadar! O zaman neden sanal bir işleve ihtiyaç var?
Sanal işlevlerin bir miktar fayda sağladığının açık olduğu yeterli ve mantıklı bir örnek görmek ilginçtir. Çünkü gördüklerim mantıklı değil, en azından benim için. neyse anlamak isterim.
Ders kitabı bu örneği polimorfizmle ilgili olarak verir:
Bir şeyi anlamadım. Çağrılar için hala alt işlev nesneleri kullanıyorsanız, ör. türetilmiş yöntemler CCircle ve CSquare , ardından GetArea() alanı, temel sınıftaki bildirimleri atlayarak hesaplanabilir. Onlar. temel sınıfta hiç sanal işlevler oluşturmayın, türevlerde normal bir yöntem oluşturun ve hepsi bu kadar! O zaman neden sanal bir işleve ihtiyaç var?
Sanal işlevlerin bir miktar fayda sağladığının açık olduğu yeterli ve mantıklı bir örnek görmek ilginçtir. Çünkü gördüklerim mantıklı değil, en azından benim için. neyse anlamak isterim.
Bu, polimorfizmi anlamak için en basit örnektir. Oraya çabuk ulaşmak için.
Zor durumlar var. Gerektiğinde başvurun. Şimdi uğraşmanın bir anlamı yok. Bir görev olacak, o zaman düşünmelisin.
Örneğin, tüm olası okuma/yazma arayüzlerine sahip bir temel sınıfım var. Ayrıca temel sınıftaki bu arabirimi türetilmiş sınıflara bağlayan özel sanal yöntemlere (yalnızca 2-okuma/yazma) sahiptir. Aslında, türetilmiş sınıflar, dosyalarla çalışmanın olduğu herhangi bir yerde olabilir (dosyalar, haritalama, kanallar, İnternet). Türetilmiş sınıfların her biri bu sanal yöntemleri farklı şekilde tanımlar, ancak tüm sınıflar temel sınıftan aynı arabirimi paylaşır.
Ders kitabı bu örneği polimorfizmle ilgili olarak verir:
Bir şeyi anlamadım. Çağrılar için hala alt işlev nesneleri kullanıyorsanız, ör. türetilmiş yöntemler CCircle ve CSquare , ardından GetArea() alanı, temel sınıftaki bildirimleri atlayarak hesaplanabilir. Onlar. temel sınıfta hiç sanal işlevler oluşturmayın, türevlerde normal bir yöntem oluşturun ve hepsi bu kadar! O zaman neden sanal bir işleve ihtiyaç var?
Sanal işlevlerin bir miktar fayda sağladığının açık olduğu yeterli ve mantıklı bir örnek görmek ilginçtir. Çünkü gördüklerim mantıklı değil, en azından benim için. neyse anlamak isterim.
Küçük bir örnek çizmeye çalışacağım:
Bu yapı sayesinde, olası iyileştirmelerle, çok büyük ve karmaşık olabilen çalışma algoritmasına girmemize gerek yok (burada her şey basitleştirilmiştir), sadece bir ardıl, numaralandırmada m3 ve bir tane daha eklememiz gerekiyor. Anahtarda daha fazla durum. Onlar. Programın ana bölümünde düzenleme yapmaktan kaçınmamıza izin verecek giriş verilerini birleştirdik.
Tabii ki, bu yalnızca çalışma algoritmasının çeşitli türleri girdi olarak kabul etmesi durumunda geçerlidir. Tür bir ise, tüm bunlar işe yaramaz.
Ders kitabı bu örneği polimorfizmle ilgili olarak verir:
Bir şeyi anlamadım. Çağrılar için hala alt işlev nesneleri kullanıyorsanız, ör. türetilmiş yöntemler CCircle ve CSquare , ardından GetArea() alanı, temel sınıftaki bildirimleri atlayarak hesaplanabilir. Onlar. temel sınıfta hiç sanal işlevler oluşturmayın, türevlerde normal bir yöntem oluşturun ve hepsi bu kadar! O zaman neden sanal bir işleve ihtiyaç var?
Sanal işlevlerin bir miktar fayda sağladığının açık olduğu yeterli ve mantıklı bir örnek görmek ilginçtir. Çünkü gördüklerim mantıklı değil, en azından benim için. neyse anlamak isterim.
İşte basit bir örnek:
GetArea() işlevini, hangi şekle çağrıldığını bilmeden kullanırız.Sınıfta bu ayarlayıcı var:
Derleyici, ColorBySend dizisine böyle bir öğe ataması hakkında genel olarak şu şekilde yemin eder:
Neyle bağlantılı? Değerleri öğeye öğeye atamak gerçekten gerekli mi? Liste mümkün değil mi? Neyle bağlantılı? Sonuçta, ders kitabında bile atama böyle gerçekleşir ...Sınıfta bu ayarlayıcı var:
Derleyici, ColorBySend dizisine böyle bir öğe ataması hakkında genel olarak şu şekilde yemin eder:
Neyle bağlantılı? Değerleri öğeye öğeye atamak gerçekten gerekli mi? Liste mümkün değil mi? Neyle bağlantılı? Sonuçta, ders kitabında bile atama böyle gerçekleşir ...derleyicinin anlayamadığı değişken bir ifadedir. Ne yazık ki.