MQL5'te OOP hakkında sorular - sayfa 32

 
Vladimir Tkach :
Son zamanlarda, farklı derleyicilerin işlevlerinde bir tür "çöp toplama" ile tanışmaya başladım. Ne olduğunu?
Çöp toplamadan bahsediyorsanız, o zaman sizin yerinize sil'in yaptığı şey budur, ancak değişken kapsam dışına çıktığında değil, istediği zaman yapar. Bu arada, yıkıcıyı kendiniz aramanıza izin verileceği bir gerçek değil, burada dile bağlı olacak, net olarak, anladığım kadarıyla imkansız.
 
Vladimir Simakov :
burada, kesin olarak dile bağlı olacak, anladığım kadarıyla imkansız.

yani, tüm yapabileceğiniz, kullanılmayan bir nesneye NULL atamak, Microsoft web sitesinde çöp toplayıcının çağrılmaya nasıl zorlanacağına dair bazı kılavuzlar var, ancak görünüşe göre Habré'de okudum ki bu bir gerçek değil. toplayıcı, beklendiği gibi tam olarak bu çağrıda başlatılacak

onlar. Sharp'ta bellek yönetimini programcıdan mümkün olduğunca aldılar - her şey işletim sisteminin insafına kaldı ve derleyici verildi

 
Igor Makanu :

yani, tüm yapabileceğiniz, kullanılmayan bir nesneyi NULL'a atamak, Microsoft web sitesinde çöp toplayıcıyı çağrılmaya zorlama konusunda bazı kılavuzlar var, ancak görünüşe göre Habré'de okudum ki bu bir gerçek değil. toplayıcı, beklendiği gibi tam olarak bu çağrıda başlatılacak

onlar. Sharp'ta bellek yönetimini programcıdan mümkün olduğunca aldılar - her şey işletim sisteminin insafına kaldı ve derleyici verildi

Aynen öyle. Şimdi Sharpe'da ilk görevi görüyorum, bu yüzden yöntemde yeni olduktan sonra, kodda silme olmamasından dehşete düşüyor))).
 
Vladimir Simakov :
Aynen öyle. Şimdi Sharpe'da ilk görevi görüyorum, bu yüzden yöntemde yeni olduktan sonra, kodda silme olmamasından dehşete düşüyor))).

bunun yerine silme MyObj yazın; yani MyObj = boş; - bu çalışacak

Peki, o zaman operatörü kullan? - ilk başta bir şekilde tanıdık değildi, sonra makinede yazılmış

ancak bu C++'dan en büyük fark değildir, C#'da tüm nesneler referanstır ve MyObj_1=MyObj_2; o zaman bu kopyalama değil, ama bir işaretimiz var ... genel olarak, şimdi kafanızı karıştıracağım, işte kısa bir kılavuz, bir şey unutursam oraya bakarım

https://metanit.com/sharp/tutorial/2.16.php


Типы значений и ссылочные типы | C#
  • metanit.com
Ранее мы рассматривали следующие элементарные типы данных: int, byte, double, string, object и др. Также есть сложные типы: структуры, перечисления, классы. Все эти типы данных можно разделить на типы значений, еще называемые значимыми типами, (value types) и ссылочные типы (reference types). Важно понимать между ними различия. Ссылочные типы...
 

Görünüşe göre OOP'nin ihtiyacını ve faydalarını anlamaya başlıyorum, ancak uygulamakta zorlanıyorum.

Üç farklı değişken seti ile kullanılması gereken bir sınıf var. Ama bir şey yapar. Basit bir ifadeyle, 3 kurucu ekleyebilir, 3 değişken bildirebilir ve bunlara erişebilirsiniz. Ama anladığım kadarıyla, bu tamamen doğru değil. Ayrıca, iki versiyonda, string tipi değişkenlerden birinin adı farklıdır ve kodun farklı bölümlerinde kullanılır. Elbette değişkenlerin sırasını değiştirebilirsiniz, ancak anladığım kadarıyla bu tamamen doğru değil.

Yeni operatörle ilgili belgeleri okuyorum, ancak bu durumda nasıl yardımcı olabileceğini anlamıyorum. Üç farklı nesne değişkeni ile aynı nesnelere yönelik üç işaretçi arasındaki farkı görmüyorum. Muhtemelen bir kez pointer oluşturup bu nesneyi kullanıp gereksiz yere silmenizde fayda var. Ancak bir nesneye periyodik olarak ihtiyaç duyulursa, her seferinde ona bir işaretçi oluşturmak ve onu silmek tamamen aptalcadır.

Genel olarak, yardım istiyorum. C++'da OOP ile ilgili bazı açıklamalar okudum, ancak mql5 belgelerinde olduğundan daha kötü bir şekilde anlatılıyor. Sabırsız lütfen müdahale etmeyin, çok soracağım. Açıklamasız hazır kod da ilgi çekici değil, bunu anlamak istiyorum ve aptalca "Bizimle yap, bizim gibi yap ..." diye tekrarlamamak istiyorum.

 
Alexey Viktorov :

Görünüşe göre OOP'nin ihtiyacını ve faydalarını anlamaya başlıyorum, ancak uygulamakta zorlanıyorum.

Üç farklı değişken seti ile kullanılması gereken bir sınıf var. Ama bir şey yapar. Basit bir şekilde, 3 kurucu ekleyebilir, 3 değişken bildirebilir ve bunlara erişebilirsiniz. Ama anladığım kadarıyla, bu tamamen doğru değil. Ayrıca, iki versiyonda, string tipi değişkenlerden birinin adı farklıdır ve kodun farklı bölümlerinde kullanılır. Elbette değişkenlerin sırasını değiştirebilirsiniz, ancak anladığım kadarıyla bu tamamen doğru değil.

Yeni operatörle ilgili belgeleri okuyorum, ancak bu durumda nasıl yardımcı olabileceğini anlamıyorum. Üç farklı nesne değişkeni ile aynı nesnelere yönelik üç işaretçi arasındaki farkı görmüyorum. Bu, bir kez bir işaretçi oluşturduğunuzda, bu nesneyi kullandığınızda ve gereksiz olarak sildiğinizde muhtemelen faydalıdır. Ancak bir nesneye periyodik olarak ihtiyaç duyulursa, her seferinde ona bir işaretçi oluşturmak ve onu silmek tamamen aptalcadır.

Genel olarak, yardım istiyorum. C++'da OOP ile ilgili bazı açıklamalar okudum, ancak mql5 belgelerinde olduğundan daha kötü bir şekilde anlatılıyor. Sabırsız lütfen müdahale etmeyin, çok soracağım. Açıklamasız hazır kod da ilgi çekici değil, bunu anlamak istiyorum ve aptalca "Bizimle yap, bizim gibi yap ..." diye tekrarlamamak istiyorum.

Ayrıntılara ihtiyacınız var. Sınıfın görevi nedir?

 
Koldun Zloy :

Ayrıntılara ihtiyacınız var. Sınıfın görevi nedir?

Ekonomik takvim etkinliklerini CalendarValueHistory() seçmek bir sır değil. Bir durumda, tüm haberler zaman aralığındadır. Farklı bir ülkede ve farklı bir zaman aralığında. Üçüncüsü sembolle. Ama temel bir fark var mı? Programlama dersleri, çözümleri gerçekleştirdikleri görev türlerine göre ayırıyor mu?

Geçenlerde direksiyon sınavından geçemeyen biriyle tanıştım ve öfkeyle direksiyon derslerinde bu kavşağa gitmediklerini ve bu kavşakta araba kullanmayı bilmediğini söyledim.

 
Şimdi düşündüm de, bir işaretçi oluşturmak, bir nesne kullanmak ve gereksiz yere silmek için gerçekten daha iyi ne olabilir? Sonuçta, her seferinde zaman aralığı farklı olacaktır. Yoksa ayarlayıcılar aracılığıyla mevcut bir nesneye zaman ayırmak daha mı kolay?
 
Alexey Viktorov :

Farklı bir ülkede ve farklı bir zaman aralığında.

enumdaki ülkeler

yapıcıda, her zamanki anahtar durumu aracılığıyla bile, ihtiyacınız olduğu gibi başlatın, yukarıdaki arayüzlere sahip bir şablon gösterdim, ayrıca parametrelere bağlı olarak yapıcıdaki stratejilerden birini başlatıyorum ve işin geri kalanı yazmaya geliyor belirli bir strateji

https://www.mql5.com/en/forum/85652/page24#comment_13054686

 
Igor Makanu :

enumdaki ülkeler

yapıcıda, her zamanki anahtar durumu aracılığıyla bile, ihtiyacınız olduğu gibi başlatın, yukarıdaki arayüzlere sahip bir şablon gösterdim, ayrıca parametrelere bağlı olarak yapıcıdaki stratejilerden birini başlatıyorum ve işin geri kalanı yazmaya geliyor belirli bir strateji

https://www.mql5.com/ru/forum/85652/page24#comment_13054686

Özlem... Burada da arayüzlü şablonlara hakim olunmalı???