Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 113
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Çözümümün neden daha kötü olduğunu anlamıyorum, buraya ekleyeceğim:
Başlangıçta bunun bir "bak nasıl yapabilirim" bir performans olması ve tam olarak önceden düşünülmüş bir çözüm gerekliydi. Ve seninki üretime uymadı.
Ancak yönetmen bile, Belgelere göre parametrelerin hesaplanma sırasının garanti edilmediğini hesaba katmadı.
Ancak yönetmen bile, Belgelere göre parametrelerin hesaplanma sırasının garanti edilmediğini hesaba katmadı.
Adil olmak gerekirse, MQL belgelerinin hala bu anı tanımladığını belirtmek gerekir:
Not
Parametrelerin fonksiyona geriye doğru iletildiği, yani en son parametrenin önce hesaplanıp iletildiği, ardından sondan bir önceki parametrenin vb. Açılan parantezden sonra ilk gelen parametre değerlendirilir ve sırayla en son geçer.
Ve sonra bu sırayı kullanmanın bir örneği bile var. C ++ bakış açısından, bu elbette çılgınlık, ancak bu MQL'de belgelenmiş bir kuralsa, gelecekte kodlarınızı taşımayı planlamamanız normal olabilir. Ve planlıyorsanız, #ifdef __MQL__ öğesini işaretleyerek burayı güvence altına alabilirsiniz.
parametrelerin değerlendirildiği sıra garanti edilmez
Linkinizi şimdi fark ettim. Doğrusu, garantisi yoktur. İşte bu çelişkili MQL))
Linkinizi şimdi fark ettim. Doğrusu, garantisi yoktur. İşte bu çelişkili MQL))
x32'de bunun tersi doğrudur (bence öyle kalacaktır), çünkü yığınla doğrudan bir bağlantı vardır. Ve x64'te bunun tersinin bir anlamı yok, bu nedenle gelecek için hiçbir garanti yok ... dahası, orada doğal görünmüyor
Optimizasyonlu ve optimizasyonsuz farklı bir sıralama olsa şaşırmam
Tüm öneriler için teşekkür etmek istiyorum. Pratik bir sorunun çözülmesine yapıcı bir şekilde yardımcı oldu.
Görev, void TimeCurrent() çağrılsaydı hiçbir şey olmayacağını gösterdi. void mevcut haliyle pek çok şeyi bozabilir.
ebeveyn yöntemini çağırmak istiyorum
İşte kod, neyi yanlış yapıyorum ???
//+------------------------------------------------------------------+
class A
{
public:
virtual int Test_A()
{
return 100;
}
};
//+------------------------------------------------------------------+
class B :public A
{
public:
virtual int Test_A()
{
return 200;
}
};
B b;
//+------------------------------------------------------------------+
void OnStart()
{
Comment (A::b.Test_A());
}
//+------------------------------------------------------------------+
ebeveyn yöntemini çağırmak istiyorum
doğru sözdizimi:
ama mql'de doğru ya da yanlış yoktur.
ama soru sizin için daha fazla - eğer fonksiyonelin türevden çağrılması gerekiyorsa - neden onu temel sanal fonksiyona itiyorsunuz?
fxsaber :
Görev, void TimeCurrent() çağrılmış olsaydı, hiçbir şey olmayacağını gösterdi. void mevcut haliyle pek çok şeyi bozabilir.
hazırlıksız:
İki makro, pek zararı yok gibi. µl'nin gücüyle daha zarif bir şey akla gelmiyor.
hazırlıksız:
Ve neden do...while var? Kıvırcık parantez yeterli
Çalışmasını sağlamak için: