MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 667

 
Roman Sharanov :

sınıf dosyasında aşağıda

Bu yöntem bir hata döndürür mü? Evet ise, özel bölümde tanımlayın. Tam olarak şunları yapabilirsiniz:

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private :
   int       m_var;
   double    varSqrt( void )           const { return ::MathSqrt( this .m_var); }
public :
                     newC( int var );
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC( int var )
  {
       this .m_var = var ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+

Ve şunları alabilirsin:

 //+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class newC
  {
private :
   int       m_var;
   double    varSqrt( void ) const ;
public :
                     newC( int var );
                    ~newC();
  };
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::newC( int var )
  {
       this .m_var = var ;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
newC::~newC()
  {
  }
//+------------------------------------------------------------------+
double newC::varSqrt( void ) const
  {
   return ::MathSqrt( this .m_var);
  }
//+------------------------------------------------------------------+
 
neverness :

Bu saçmalıksa, deneyimle kanıtlanmıştır.

Ve sadece "teorik saçmalık" değil !!!

O o.

Göstergelerde her türlü diziyi kolayca kullanabilirim. Hem dinamik hem de statik bir tampon olarak.

Ancak her şey sizin için çalışmıyor ve deneyim size, üzgünüm, bir tür saçmalık olduğunu söylüyor.

 
Artyom Trishkin :

Bu yöntem bir hata döndürür mü? Evet ise, özel bölümde tanımlayın. Tam olarak şunları yapabilirsiniz:

Ve şunları alabilirsin:

Veya sınıf içindeki bir özel sınıf üyesine this.m_var olarak başvurabilirsiniz.
 
neverness :

Bu saçmalıksa, deneyimle kanıtlanmıştır.

Ve sadece "teorik saçmalık" değil !!!

Hiç kimse hesaplamalarda dinamik bir dizi kullanmaya zahmet etmez.

Ancak!!! Hesaplama sırasında işlemci meşguldür ve dinamik diziye herhangi bir yazma işlemi yapılmayacaktır.

Bu nedenle, hesaplamalar sırasında dinamik diziye gelen tüm veriler otomatik olarak yok sayılır. (Bazen koruma koyarlar ve arabelleğe yazarlar.)

Umarım açık olmuştur?

Bu nedenle dinamik dizilerdeki tüm veriler, işlemci işlemi sırasında veri kaybı olmaması için statik diziler arasında dağıtılır.

Ve bu nedenle tüm hesaplamalar statik dizilerde yapılmalıdır !!!

Brad şiddetli, forumun yıllıklarına girmeye değer.

 
Artyom Trishkin :

O o.

Göstergelerde her türlü diziyi kolayca kullanabilirim. Hem dinamik hem de statik bir tampon olarak.

Ancak her şey sizin için çalışmıyor ve deneyim size, üzgünüm, bir tür saçmalık olduğunu söylüyor.

İyi.

Hadi bir deney yapalım.

Tik verileriyle ilişkili dinamik bir dizi alalım ve işlemciyi bu dizide birkaç saat kullanalım.

Ve bakalım bu sefer bu diziye ne yazacağız!?

Bu soruyu beğendin mi? (Tabii ki, arabellek yok)

 
neverness :

İyi.

Hadi bir deney yapalım.

Tik verileriyle ilişkili dinamik bir dizi alalım ve işlemciyi bu dizide birkaç saat kullanalım.

Ve bakalım bu sefer bu diziye ne yazacağız!?

Bu soruyu beğendin mi? (Tabii ki, arabellek yok)

Yap. Sonra buradaki kod.

 
Artyom Trishkin :

Bu yöntem bir hata döndürür mü? Evet ise, özel bölümde tanımlayın. Tam olarak şunları yapabilirsiniz:

Ve şunları alabilirsin:

evet böyle oldu teşekkürler

 
Artyom Trishkin :

Yap. O zaman buradaki kod.

Elbette.

Sonra göreceğiz.

 

Ve başka bir soru.

İşte sınıfımdaki yapı

Bu sınıfla çalışan harici koda istek üzerine nasıl iade edebilirim?

 
Roman Sharanov :

Ve başka bir soru.

İşte sınıfımdaki yapı

Bu sınıfla çalışan harici koda istek üzerine nasıl iade edebilirim?

sadece yapının kendisini değişkenlerin küresel görünürlük düzeyinde tanımlayarak

sonra sınıfta struct türünde bir değişken bildirin

ve harici kodda aynı değişkeni bildirebilirsiniz, ancak böyle bir değişken OnTick() içinde bildirilirse, OnTick() her çağrıldığında, oluşturmamış olsanız bile yapı yapıcısının başlatılacağını unutmayın. o - MQL'de, aslında, sınıflar ve yapılar arasında hiçbir fark yoktur, hatırladığım tek şey, yeni aracılığıyla oluşturulan yapılar için bir parametreye sahip olan yapıcının derleyici tarafından kaçırılmamasıdır.

peki, toplamda ... klasik OOP'de, genellikle iç öğeleri (sınıf alanları) geçirerek "sınıfın ötesine geçmezler", genellikle her şey Get() ... Set() sınıfına yapılan isteklerle uygulanır .. .peki, bu bir zevk meselesi

Not: .... kalıtımı kullanın, mirasçıların ortak sınıfları vardır, MT dağıtımından sınıf kaynaklarına bakın (klasör dahil)