Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1333
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım 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
Cevap için teşekkürler, hiç de kötü değilsin)
Şimdi belli oldu.)
UPD
Bu tasarım da işe yarıyor
At() yönteminin ne döndürdüğüne dikkat edin. NULL döndürürse, ölümcül bir hatayla kilitlenir. Bir nesneye bir işaretçi ile erişmeden önce, NULL olmayan bir nesne olup olmadığını kontrol edin.
zaten fark ettim)
Yani, çıkış yolu, küresel olarak boş nesneler ilan etmektir ....
Ve eğer önceden bilinmiyorsa, kaç tane olacak? Sadece "bir marjla" ilan etmek mi? :)
PS Yerleşik yardımda, nesneleri bildirmenin böyle bir yolunu bulamadım
Bir keresinde Artyom bana bu dersi yazmıştı. Nasıl çalıştığını ayrıntılı olarak açıklayamam. Ama Artyom gördüğünde hatırlayacak ve açıklayabilecektir. Genel olarak, işte sınıfın kendisi
Ve işte OnInit()'te işaretçiler oluşturma döngüsü
ve OnTimer'da()
ArraySize(Rates), çalışılacak karakterleri listeleyen bir dizi yapı boyutudur .
Bir keresinde Artyom bana bu dersi yazmıştı. Nasıl çalıştığını ayrıntılı olarak açıklayamam. Ama Artyom gördüğünde hatırlayacak ve açıklayabilecektir. Genel olarak, işte sınıfın kendisi
Ve işte OnInit()'te işaretçiler oluşturma döngüsü
ve OnTimer'da()
ArraySize(Rates), çalışılacak karakterleri listeleyen bir dizi yapı boyutudur .
Burada:
Toplama kadar yapardım - sırf Rates dizisinden karakterleri okuduğunuz için (doğru mu?), yeni bar sınıfının örneklerini oluşturun ve bunları listeye ekleyin.
Herhangi bir ekleme hatası için, yeni çubuk sınıfının örneklerine yönelik işaretçi listesinin boyutu Rates dizisinin boyutuyla eşleşmeyecektir.
Genel olarak, şöyle bir şey:
Ve burada listeye eklemenin başarısını da kontrol etmeniz gerekiyor:
şöyle bir şey:
listeye yeni bir nesneye bir işaretçi ekleme başarısız olduğunda bellek sızıntılarını önlemek içinBurada:
Toplama kadar yapardım - sırf Rates dizisinden karakterleri okuduğunuz için (doğru mu?), yeni bar sınıfının örneklerini oluşturun ve bunları listeye ekleyin.
Herhangi bir ekleme hatası için, yeni çubuk sınıfının örneklerine yönelik işaretçi listesinin boyutu Rates dizisinin boyutuyla eşleşmeyecektir.
Genel olarak, şöyle bir şey:
Ve burada listeye eklemenin başarısını da kontrol etmeniz gerekiyor:
şöyle bir şey:
listeye yeni bir nesneye bir işaretçi ekleme başarısız olduğunda bellek sızıntılarını önlemek içinTeşekkür ederim. anladım öyle düzelteyim ... :))))
Devam ifadesinden nefret ediyorum; ve kullanmamaya çalışın. Sadece acil durumlarda.
ondan nasıl farklı
Başka bir şey, eğer bir hata durumunda, başarısız bir işaretçi silinirse ... Ama burada bile devam etmeden yapabilirsiniz, ki bundan nefret ediyorum; sadece Print()'i kaldırarak. Hata ayıklama ve neler olduğunu anlamaya çalışırken gerekliydi ve işlem sırasında bir hata meydana gelirse, kimse için neyin yanlış olduğunu anlamayacağım ... İşletim sistemini yeniden yüklemek benim için günlükleri anlamaktan daha kolay.Bunu zaten konuştuğumuz için, lütfen bize vahşilere girmeden, bir işaretçinin bir sınıf değişkeninden nasıl farklı olduğunu ve hangisinin tercih edilebilir olduğunu söyleyin. Anlaşılması zor olan ayrıntılarda, tyrnet'te okuyabilirim. deyim yerindeyse yüzeysel bir anlayış bana yeter...
At() yönteminin ne döndürdüğüne dikkat edin. NULL döndürürse, kritik bir hatayla kilitlenir. Bir nesneye bir işaretçi ile erişmeden önce, NULL olmayan bir nesne olup olmadığını kontrol edin.
Artem, değerli yorumun için teşekkürler)
Teşekkür ederim. anladım öyle düzelteyim ... :))))
Devam ifadesinden nefret ediyorum; ve kullanmamaya çalışın. Sadece acil durumlarda.
ondan nasıl farklı
Döngünün yinelemesi bitmeyecek ve yenisi başlamayacak, ancak bir sonraki If'ye geçecektir. Mantık değişecek.
Bir keresinde Artyom bana bu dersi yazmıştı. Nasıl çalıştığını ayrıntılı olarak açıklayamam. Ama Artyom gördüğünde hatırlayacak ve açıklayabilecektir. Genel olarak, işte sınıfın kendisi
Alex, böyle ayrıntılı bir cevap için teşekkürler.
Yukarıdaki kod parçasında ret değişkeninin amacı net değil...
Yöntem yine de dizi[0] döndürürse neden hesaplanır?
ZY
Bunu neden bir sınıf yönteminde kullanıyorsunuz? Bu özel sınıfın üyeleriyle çalışıyoruz...
Teşekkür ederim. anladım öyle düzelteyim ... :))))
Devam ifadesinden nefret ediyorum; ve kullanmamaya çalışın. Sadece acil durumlarda.
ondan nasıl farklı
Başka bir şey, eğer bir hata durumunda, başarısız bir işaretçi silinirse ... Ama burada bile devam etmeden yapabilirsiniz, ki bundan nefret ediyorum; sadece Print()'i kaldırarak. Hata ayıklama ve neler olduğunu anlamaya çalışırken gerekliydi ve işlem sırasında bir hata meydana gelirse, kimse için neyin yanlış olduğunu anlamayacağım ... İşletim sistemini yeniden yüklemek benim için günlükleri anlamaktan daha kolay.Bunu zaten konuştuğumuz için, lütfen bize vahşilere girmeden, bir işaretçinin bir sınıf değişkeninden nasıl farklı olduğunu ve hangisinin tercih edilebilir olduğunu söyleyin. Anlaşılması zor olan ayrıntılarda, tyrnet'te okuyabilirim. deyim yerindeyse yüzeysel bir anlayış bana yeter...
Döngünün yinelemesi bitmeyecek ve yenisi başlamayacak, ancak bir sonraki If'ye geçecektir. Mantık değişecek.
Alex, böyle ayrıntılı bir cevap için teşekkürler.
Yukarıdaki kod parçasında, ret değişkeninin amacı net değil...
Yöntem yine de dizi[0] döndürürse neden hesaplanır?