Hatalar, hatalar, sorular - sayfa 1034
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Aslında bu mantıklı çünkü yazılanlar biraz hayal gibi görünüyor.
C++ öyle düşünmüyor.
Evet, C++ pek çok şeyi saymaz, ancak mesele şu ki, statik üyeler başlatıldıkları sırayla değil, bildirildikleri sırayla başlatılabilirler.
Bununla ilgili standardı içmek gerekir.
https://www.mql5.com/ru/docs/basis/variables/initialization
Çok fazla yalvardım - const transfer etmedim - şimdi gördüğünüz gibi her şey açık - bir sabit bir diğeri tarafından başlatılıyor:
Derleyici bir hata olarak s1 üyesinin güvenliğine işaret eder. Korumalıyı public ile değiştirirseniz, her şey saat gibi çalışır. Ancak güvenliğin doğası gereği başlatma sırası, atama sırası veya belirli bir değerle başlatma yeteneği ile ilgisi yoktur.
Bununla ilgili standardı içmek gerekir.
Genel durumda, derleyicinin derleyiciden farklı olduğuna ve çözülmesi gerektiğine katılıyorum.
Başka bir örnek
Burada MQL derleyicisi diziyi const int değeriyle başlatmak istemiyor (enum - geçer)
Yine, C++'ın bunu kopyaladığı ve doğru şekilde başlattığı gerçeğine itiraz ediyorum.
Muhtemelen arama dizisinde bir hata
C++'da, bir ifadenin işlenenlerinin değerlendirilme sırası UB'dir. Neden burada belirli bir siparişe güveniyorsun?
"Merhaba kelimesi" olarak çıktı mı?
Bu durumda, string türü için her şeyin normal şekilde görüntülenmesine rağmen, int türü için aşırı yüklenmiş operatör için olan budur.
Ayrıca, C++'ın bununla hiçbir ilgisi yoktur. Diyelim ki kod yazdınız
Ve sizin için, bu işlevler ters sırada veya genel olarak farklı argüman türleri için - keyfi bir sırayla yürütüldü.Selamlar!
'Geçersiz işaretçi erişimini' düzeltmeye yardımcı olun.
OnInit() içinde:
SymbolsCollection = new CSymbolsCollection(); SymbolsCollection.RefreshRealSymbols();
CSymbolsCollection::RefreshRealSymbols() yönteminin CleanSymbolsArray(myRealSymbols);
Bu yöntem ve değişken sınıfta şu şekilde bildirilir:
Sorun şu ki, RefreshRealSymbols() , CSymbolsCollection yapıcısında çağrıldığında düzgün şekilde yürütülür.
Ancak, SymbolsCollection .RefreshRealSymbols(); OnInit() içinde; sebep olur:
Hata, CSymbolsCollection::RefreshRealSymbols() yönteminin gövdesindeki CleanSymbolsArray(myRealSymbols); satırına işaret ediyor. , konum, açılış parantezinden hemen sonradır.
Herhangi bir fikir?
...
Herhangi bir fikir?