MQL5'te birlikte öğrenme ve yazma - sayfa 33

 

Başlatmayı başlatma listesine aktarmak gereklidir.

Bildirimde, yalnızca statik integral sabitleri iyi için başlatılabilir (en azından C++'da, MQL5'te henüz bilmiyorum :))

 
Bir soru daha, sonuncusu. Dizeler için "" ve NULL öğelerinin eşdeğer olmamasının nedeni nedir?
 
Interesting :

Kuşlardan bahsetmişken.

Peki derleyici bize ne söyleyecek? Ve şuna cevap verecek - '=' - yasadışı atama kullanımı

Derleyici eğimli değildi - '=' - yasadışı atama kullanımı.

Sorum şu: Programcı (bu durumda, ben) değişkenleri kullanılmadan önce başlatmaya özen göstermezse (derleyicinin gerektirdiği gibi davranır ve yapıcıda bu anı kaçırırsa) ne olur?


yapıcı(lar)daki yapıların/sınıfların üyelerini doğru şekilde başlat:

 //Struct StrMQL4_Deal
struct StrMQL4_Deal
{
//----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
StrMQL4_Deal():TP( 0 ),SL( 0 ) { }
StrMQL4_Deal( double tp, double sl):TP(tp),SL(sl) { }
};
 
TheXpert :
Bir soru daha, sonuncusu. Dizeler için "" ve NULL öğelerinin eşdeğer olmamasının nedeni nedir?
NULL, dizenin ayrılmadığı ve "" dizenin ayrıldığı ve bir değeri olduğu anlamına gelir.
 
mql5 :

yapıcı(lar)daki yapıların/sınıfların üyelerini doğru şekilde başlat:

Evet, bunu bir yıldan fazla bir süre önce anladım, en azından 2010'dan beri bunu yapıyorum.
 
Interesting :
Evet, bunu bir yıldan fazla bir süre önce anladım, en azından 2010'dan beri bunu yapıyorum.

2010'dan beri doğru yapamıyorsun çünkü başlatma listesi oldukça yakın zamanda tanıtıldı :) .

mql5 :

NULL, dizenin ayrılmadığı ve "" dizenin ayrıldığı ve bir değeri olduğu anlamına gelir.

Tamam, farklı bir şekilde koyacağım. Kullanıcıya "tahsis edilmemiş" bir dize durumu vermenin amacı nedir? Bir şekilde kullanılabilir mi yoksa sadece bir koltuk değneği mi?
 
TheXpert :
2010'dan beri doğru yapamıyorsun çünkü başlatma listesi oldukça yakın zamanda tanıtıldı :) .
Ben yapıcıda demek istedim.
 
TheXpert :

2010'dan beri doğru yapamıyorsun çünkü başlatma listesi oldukça yakın zamanda tanıtıldı :) .


Sınıf yapıcısına başlatmayı ve formdaki bildirimi girmek zorunda kaldım.

 //----------------------------------------------------------------------------//
double TP;
double SL;
//----------------------------------------------------------------------------//
Tam olarak hatırlamıyorum ama nesnelerle çalışmaya 2010 yılının başında başladım (ilk çeyrek kesin bir şey söyleyemem, kaynak kodlarını aramak angaryadır). Bundan önce, kütüphanelerde çalıştı ve MQL5'in temellerini inceledi (daha doğrusu MQL5'e geçişle ilgili konularla ilgilendi).
 
Rosh :
Bir dizideki farklı veri türleri için bir işlevi aşırı yüklüyorsunuz.
SPS, anlaşılır. Yani evrensel bir yol yok. Soru, aşırı yükleme sırasında, dizinin türünü belirtmeniz gerektiğinde işlev başlığında, yalnızca bir (!) Fark ile aynı işlevler göründüğü için ortaya çıktı. Pek zarif değil, ama ne yapabilirsin, bırakacağım. Rehberde olduğu gibi bir çıkış yolu olduğunu umuyordum.
 

İşte benim için anlaşılmaz bir sonuç üreten basit bir betik

 void OnStart ()
  {
   for ( uchar u= 120 ;u< 136 ;u++)
     {
       switch (u> 254 )
        {
          case  true : Print (u, ">254 - true" );  break;
          case false : Print (u, ">254 - false" ); break;
        }
     }
  }

Belki birisi sebebinin ne olduğunu açıklayabilir? 254 sayısını açıkça uchar türüne çevirdiğinizde, istendiği gibi çalışır.

Neden: