Hatalar, hatalar, sorular - sayfa 2416

 
Andrey Pogoreltsev :

Burada kesinliğe gerek yoktur. Aşırı yüklenmiş yöntemlerin uygulandığı basit bir sıra olmalıdır. Onlar. aşırı yükü çözmenin görevi ikilem yaratmak değil, en uygun yöntemi seçmektir. Erişim değiştirici atılırsa, tablodaki ilk yöntem alınır veya derleyicinin uygulanmasına bağlıdır, ancak burada bir belirsizlik yoktur.

Şimdi, örneğin farklı giriş parametrelerine sahip 2 yöntem varsa:

C++'a dönersek, aynı vektörde şunlar bulunur:

Yani tamamen normal.

Çok basit bir ilkokul örneği vermişsiniz. Orjinaliyle alakası yok gibi.


Alexey Navoykov :

Açıkçası, çağrı imzasıyla en iyi eşleşeni. Bu örnekte, sabit olmayan bir nesnenin yöntemi istenmektedir; buna göre, ceteris paribus, çağrılmalıdır.

Bu kuralı bilmiyordum, teşekkürler.

Her iki yöntem için de int türünde bir argüman oluşturarak yayından kaldırırsanız, normal olarak derlenir. Onlar. MQL'deki tıkaç tam olarak dökümden kaynaklanmaktadır. Bu dökümün hiçbir etkisi olmamalıdır, çünkü o aynı

Görünüşe göre, derleyici aşırı yüklenmiş yöntemler için dökümün kimliğini kontrol etmiyor.

 

Genel olarak, bu sorunu (ve MQL'deki diğer birçok sorunu) çözmek için yöntemlerden birini yardımcı bir sınıfa taşımanız gerekir:

 class A { };

class _B
{
 protected : 
  A _a[];
 public :        
   const A * operator []( uint i) const { return &_a[i]; }  
};

class B : public _B
{
  public :  
  A * operator []( uint i)       { return &_a[i]; }
};
 
fxsaber :

Çok basit bir ilkokul örneği vermişsiniz. Orjinaliyle alakası yok gibi.

Bunların hepsinin yukarıda alıntıladığım aynı kural tarafından kararlaştırıldığını anlamak için C++ standardını okumalısınız.
 
Slava :

Optimizasyon önbelleğinde hem MT5 hem de MT4'te dize parametrelerinin her zaman 63 karaktere kısaltıldığı gerçeğiyle başlayalım.

Olayları iletirken, dize de 63 karakterden uzun olamaz.

Yani dışarıdan gelen sınırlıdır.

Son kullanıcılar için ürünlere gelince. Satıcı kısıtlamaları dikkate almalıdır. Ve bunları bilmiyorsa, satmadan önce ürününü yeterince test etmemiştir.

Bu, nasıl olduğu ve olduğu ile ilgili değil, zamana ayak uydurma ve daha iyisi için değişme arzusu varsa, iyi bir şekilde nasıl olması gerektiği ile ilgili.

 

Danışmanı test ederken böyle bir sorunla karşılaştım, parametreleri ayarladıktan ve başlat düğmesine bastıktan sonra danışman ayarları varsayılan ayarlara sıfırlanıyor, sorun ne olabilir?

video örneğinde

 
Dmitry Melnichenko :

Danışmanı test ederken böyle bir sorunla karşılaştım, parametreleri ayarladıktan ve başlat düğmesine bastıktan sonra danışman ayarları varsayılan ayarlara sıfırlanıyor, sorun ne olabilir?

video örneğinde

MT5, "Ayarlar" sekmesine gittikten sonra test cihazındaki ayarları otomatik olarak sıfırlar

1 numaralı gönderiye bakın.

 

Bir sonraki başlıkta bir soru sordum, ancak görünen o ki çok az kişi bunu araştırıyor. Burada çoğaltıyorum:

https://www.mql5.com/ru/forum/6343/page1020#comment_11112212

Kısaca: vadeli işlemlerde (test cihazında), işlemler açılır ve kapatılır (SL/TP ile), ancak her zaman sıfır kârla. Bu bir test hatası olabilir mi? Yoksa bir numara mı gerekli?

Вопросы от начинающих MQL5 MT5 MetaTrader 5
Вопросы от начинающих MQL5 MT5 MetaTrader 5
  • 2019.03.26
  • www.mql5.com
Подскажите пожалуйста, такой показатель тестера в жизни реален? И хороший это или плохой результат за год с депо 3000...
 

Derleyici hatası. Bir .mqh dosyasının bu tür bir kodla derlenmesi (sözdizimi denetimi) bir hata oluşturmaz. Yalnızca uygun olmayan bir yürütülebilir dosya derlenirken verilir.

 class A
{
 public : 
  A( int ) {  }
};

class B : public A { };   // Здесь должна быть ошибка  'A' - wrong parameters count

B b;
 
Alexey Navoykov :

Derleyici hatası. Bir .mqh dosyasının bu tür bir kodla derlenmesi (sözdizimi denetimi) bir hata oluşturmaz. Yalnızca uygun olmayan bir yürütülebilir dosya derlenirken verilir.

Çünkü başlık prensipte derlenmez :)))

Tüm başlığı derlemeye zorlarsanız, birçok yanlış hata alırsınız.

not. C++ derleyicisi de bu tür sınıfları kullanmadan yemin etmez.
 
Andrey Pogoreltsev :

Çünkü başlık prensipte derlenmez :)))

Tüm başlığı derlemeye zorlarsanız, birçok yanlış hata alırsınız.

not. C++ derleyicisi de bu tür sınıfları kullanmadan yemin etmez.

Derlemediğini biliyorum. Sözdizimi kontrolünden bahsediyoruz (buna ME'de "Derleme" terimi de denir), çünkü son yazıda bunu parantez içinde bile belirttim. C++ derleyicisi ayrıca bir sözdizimi denetimi de çalıştırırsa (genellikle komut satırı aracılığıyla), o zaman güzel bir yemin eder.