Hatalar, hatalar, sorular - sayfa 1784

 
Rashid Umarov :
Buraya bakın - Programları Yürütme

MQL5 programlarının kısa bir özeti tabloda verilmiştir:

programı

Verim

Not

Senaryo

Kendi iş parçacığında, kaç tane komut dosyası - onlar için çok fazla yürütme dizisi

Döngülenmiş bir komut dosyası diğer programları kıramaz

Uzman

Kendi iş parçacığında, kaç uzman - onlar için çok fazla yürütme dizisi

Döngüsel bir EA, diğer programların çalışmasını bozamaz

Gösterge

Tek bir semboldeki tüm göstergeler için bir yürütme dizisi. Göstergeli kaç sembol - onlar için çok fazla yürütme dizisi

Bir göstergedeki sonsuz döngü, o semboldeki diğer tüm göstergeleri durduracaktır.

Teşekkürler, demek istediğim buydu

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Slava , 2017.02.06 07:22

Ancak burada bile M5'teki Deinit komutunun M15'teki Init komutundan daha önce işleneceği gerçeğine güvenemezsiniz.

 
-Aleks- :

Maalesef bu formatı bilmiyorum.

Deney, grafik arabelleğindeki sayının çift ile aynı kuralla temsil edildiğini gösterdi - yani. bu kadar uzun bir sayıyı grafik arabelleği üzerinden aktarmak mümkün değil - hayal kırıklığı yaratıyor.

Ne yazık ki, grafik arabelleğine yalnızca 10 karakter sığabilir.

Bu arada, neden 4 ondalık basamak sınırı var?

 

Derleme hatası (tam olarak hata mesajı yok)

class A {
public :
         int i;
};
class B : public A {};
class C : protected A {};
class D : protected B {};
void OnStart ()
{
        C c;
         Print ( c.i ); //Error: 'i' - protected member access error
        D d;
         Print ( d.i ); //нормально???
}
 

Çalışma Zamanı Hatası: EX5 yüklemesi başarısız oldu

class A;
typedef void (*f)( A*);
class A {
     virtual void g( A *a ) {}
        f ff;
};
void OnStart () { Print ( __FUNCTION__ ); }
 

Çalışma hatası

class B;
void f( B* );
class A { public :
         virtual ~A() { f((B *)& this ); } //(*)
         virtual void g( A* ) { Print ( __FUNCTION__ ); }
};
class B : public A { public :
         virtual void g( A* ) { Print ( __FUNCTION__ ); }
};
void f( B *b ) { b.g( b ); }
void OnStart () //(1)
{
        B *b = new B;
         delete b;
}

Sonuç: (*) içindeki işaretçilerin yanlış dökümü

Ve eğer

void OnStart () { B b; } //(2)

o zaman sonuç: B::g

ve OnStart (1) ve (2) arasındaki temel fark nedir???

Ayrıca, C++'daki benzer bir kodun sonucu: A::g

 

A100 :  

Yukarıdaki örnekte olduğu gibi neden sanal bir yıkıcıya ihtiyaç duyulabilir? Bir torunda geçersiz kılmak mümkün mü?

 
fxsaber :

Yukarıdaki örnekte olduğu gibi neden sanal bir yıkıcıya ihtiyaç duyulabilir? Bir torunda geçersiz kılmak mümkün mü?

MQL'de açıkça belirtilmese bile her zaman sanaldır.
 
A100 :
MQL'de açıkça belirtilmese bile her zaman sanaldır.
Yani soruyu cevaplamadın - neden?
 
fxsaber :
Yani soruyu cevaplamadın - neden?
MQL'de tüm yıkıcılar sanal ise, sanal bir yıkıcıya neden ihtiyaç duyulduğu sorusu neden bir yıkıcıya ihtiyaç duyulduğu sorusuna indirgenir. Ve bu çok genel bir soru.
 
A100 :
MQL'de tüm yıkıcılar sanal ise, sanal bir yıkıcıya neden ihtiyaç duyulduğu sorusu neden bir yıkıcıya ihtiyaç duyulduğu sorusuna indirgenir. Ve bu çok genel bir soru.
Bir yıkıcının ne için olduğunu biliyorum. Neden sanal kelimesini tanımından önce reçete ettiğimi anlayamadım?