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
1) burada bir hata olduğunu düşündüm:
Bölüm: Yapıcıya parametre geçirme"Init() işlevi, aşağıdaki bölümde ayrılmıştır özel sınıfın yeniden başlatılabilmesini sağlamak için bölüm."
mümkün:
Init() fonksiyonu kamu bölümünü sınıfı yeniden başlatma imkanı sağlamak için kullanınız.
2) "ObjectArray" bölümü için "create an array with class instances (objects)" özelliğinin kullanımınabir örnek veriniz. Ne yazık ki, "bunun ne için kullanıldığını" anlayamıyorum.
3) "Kapsülleme (private, protected, public) hakkında daha fazla bilgi" bölümünde, temel sınıf->sınıf soyundan geçerken bahsediliyor. Belki de bu veri(class Class: public CBase) bölümün başında açıklanmalıydı, çünkü ben bunu sonradan fark ettim.
4) bulamadım:Şekil 6. "Ekstra" fonksiyonun (kırmızı ok) görünürlüğü, sınıfın yüklendiği işaretçi türüne göre belirlenir. Bu örnek ekte OOP_sDefaultVirtual_1.mq5 dosyasında bulunabilir.
5) Bir kütüphanenin ne olduğuna dair net bir gösterge bulamadım. Görünüşe göre, fonksiyonların sınıf(lar)ını saklamanın bir yolu mu? Yani include dosyasına benzer şekilde, sadece include dosyası kaynak olarak ve kütüphane derlenmiş bir dll olarak mı saklanıyor?
Makale için çok teşekkür ederim! Özellikle materyalin tutarlı bir şekilde sunulmasından memnun kaldım.
1) burada bir hata olduğunu düşündüm:
Bölüm: Yapıcıya parametre geçirme"Init() işlevi, aşağıdaki bölümde ayrılmıştır özel sınıfın yeniden başlatılabilmesini sağlamak için bölüm."
mümkün:
Init() fonksiyonu kamu bölümünü sınıfı yeniden başlatma imkanı sağlamak için kullanınız.
2) "ObjectArray" bölümü için "create an array with class instances (objects)" özelliğinin kullanımınabir örnek veriniz. Ne yazık ki, "bunun ne için kullanıldığını" anlayamıyorum.
3) "Kapsülleme (private, protected, public) hakkında daha fazla bilgi" bölümünde, temel sınıf->sınıf soyundan geçerken bahsediliyor. Belki de bu veri(class Class: public CBase) bölümün başında açıklanmalıydı, çünkü ben bunu sonradan fark ettim.
4) bulamadım:Şekil 6. "Ekstra" fonksiyonun (kırmızı ok) görünürlüğü, sınıfın yüklendiği işaretçi türüne göre belirlenir. Bu örnek ekte OOP_sDefaultVirtual_1.mq5 dosyasında bulunabilir.
5) Bir kütüphanenin ne olduğuna dair net bir gösterge bulamadım. Görünüşe göre, fonksiyonların sınıf(lar)ını saklamanın bir yolu mu? Yani include dosyasına benzer, sadece include dosyası kaynak olarak ve kütüphane derlenmiş bir dll olarak mı saklanıyor?
Makale için çok teşekkür ederim! Özellikle materyalin tutarlı bir şekilde sunulmasından memnun kaldım.
1. Evet.
2. "Array of objects" bölümünde bir örnek var, aslında tüm bölüm açıklamalı bir örnek.
3. "Programın çalışma mantığını değiştirmek için OOP kullanımı" bölümünde ele alınmıştır.
4. "Bu örnek dosyanın ekinde yer almaktadır..." ifadesi, dosyanın bölüm başlığı ile belirtilen bölüm için bir örnek içerdiği anlamına gelir. Bu, örneklerin makalede yazılan her şeyi tekrarladığı anlamına gelmez. Bu örnekler hiç olmayabilir, her şey makalede yazılmıştır. Ancak örnekler oradadır, onları temel alabilir ve deneyebilirsiniz. Makale birincil, örnekler ikincildir.
5. Уже давно указано: http://ru.wikipedia.org/wiki/%C1%E8%E1%EB%E8%EE%F2%E5%EA%E0_(%EF%F0%EE%E3%F0%E0%EC%EC%E8%F0%EE%E2%E0%ED%E8%E5)
Yetkin bir "erişilebilir" dille yazılmış çok ilginç bir makale.
Yazara teşekkür ederim.
Bu makaleden kopyaladığım iki kod örneğim var. Her ikisi de bir sınıfa işaretçi dizisi oluşturuyor ve çıkışta bunları siliyor. Ancak, biri bellek sızıntısı ile çıkarken diğeri bellek sızıntısı olmadan çıkıyor. Tek fark 2. örnekte yıkıcıdaki 'Alert' yorumlanmış. Yıkıcıdaki alert kaldırıldığında bellek sızıntısı oluyor. Bu çok garip. Biri açıklayabilir mi??? Lütfen yardım edin, bu beni ÇILDIRTIYOR.
Bu makaledeki kod örneklerinin sonuna, yazdığım ve bellek sızıntısı olan son derece basit bir kod örneği ekledim. Yine, neden???? Bu son kod örneğinde karmaşık hiçbir şey yok. ..
Bu kod bellek sızıntısı olmadan çalışıyor:
Uzman günlüğünden alınan mesajlar, sızan bellek olmadığına dikkat edin:
PI 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Yıkıcı 0
KP 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Yıkıcı 1
JG 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 2
TR 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 3
LF 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 4
OM 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 5
FD 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 6
IK 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Yıkıcı 7
HS 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Destructor 8
CJ 0 OOP_sConstDestr_2 (EURUSD,M1) 13:57:59 Yıkıcı 9
Bu kod bir bellek sızıntısı ile çıkar!!!! Neden????????? Tek fark yıkıcıdaki 'Alert' ifadesinin yorumlanması...
Uzman günlüğünden mesajlar, sızan belleğe dikkat edin:
FM 1 OOP_sConstDestr_2 (EURUSD,M1) 13:51:19 10 silinmemiş nesne kaldı
EG 1 OOP_sConstDestr_2 (EURUSD,M1) 13:51:19 CName türünde 10 nesne kaldı
GO 1 OOP_sConstDestr_2 (EURUSD,M1) 13:51:19 200 bayt sızan bellek
Son örnek, benim kodum, çok basit ama bellek sızıntısı ile çıkıyor....
Uzman günlüğünden mesajlar, sızan belleğe dikkat edin:
MR 0 tester (EURUSD,M1) 14:07:23 Son Hata- 0 Geçerli zaman: 2013.02.06 23:07:23
FL 1 tester (EURUSD,M1) 14:07:23 10 silinmemiş nesne kaldı
KN 1 tester (EURUSD,M1) 14:07:23 CCandleStick türünde 10 nesne kaldı
JS 1 tester (EURUSD,M1) 14:07:23 160 bayt sızan bellek
İki örneğim var...
Üç varyantı da kontrol ettim. Üçü de aynı. Hepsi normal. Hiçbiri sızıntı vermiyor. Bu örneklerde, bu olamaz - dizimiz var, dizinin her elemanında örnek var, bittiğinde tüm nesneleri siliyoruz. Nesneler kendilerinin kopyalarını oluşturmazlar, aynı şeyi silmeyi kaçıramazsınız. Eğer nesne kendi kopyasını yaratırsa, o zaman silme konusunda zorluklar yaşayabiliriz, bir şeyi kaçırmak çok kolaydır. Gerçekten sızıntı olan varyantları gösterin.
Kod eklemek için SRC düğmesini kullanın (daha iyisi - dosya ekleyin).
İngilizcem için özür dilerim :)
Üç varyantı da kontrol ettim. Üçü de aynı. Hepsi normal. Hiçbiri sızıntı vermiyor. Bu örneklerde, bu olamaz - dizimiz var, dizinin her elemanında örnek var, bitirdiğimizde tüm nesneleri siliyoruz. Nesneler kendilerinin kopyalarını oluşturmazlar, aynı şeyi silmeyi kaçıramazsınız. Eğer nesne kendi kopyasını yaratırsa, o zaman silme konusunda zorluklar yaşayabiliriz, bir şeyi kaçırmak çok kolaydır. Gerçekten sızıntı olan varyantları gösterin.
Kod eklemek için SRC düğmesini kullanın (daha iyisi - dosya ekleyin).
İngilizcem için özür dilerim :)
Cevap vermeye zaman ayırdığınız için çok teşekkürler. Takip eden sorumu gördüğünüzden emin değilim. Bu foruma çok aşina olmadığım için muhtemelen silinen ayrı bir yorumdaydı. Ancak, üç örneği de MetaTrader'ın eski bir sürümüne sahip eski bir bilgisayarda çalıştırmayı denedim. Eski sürümde 3'ü de iyi çalışıyor gibiydi. Uzman günlüğü 'bellek sızıntısı' hatası oluşturmadı, sanırım 560?Hatırlamıyorum ve 560'ı yeni 756 yapısına yükselttim. Yeni yapıdan sonra aynı bellek sızıntısı sorunlarını yaşıyorum. Eski yapının bir özellik olmadığı için bellek sızıntısı sorunlarını bildirmemiş olması mümkün mü? Hangi yapıyı kullanıyorsunuz? Tekrar teşekkürler.