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
Sınıfları sebepsiz kullanıyorsanız, OOP değildir.
Ve evet, size tavsiyem, bu gadget'lara olan ihtiyacı anlayana kadar onları kullanmayın.
Böyle bir yaklaşımla anlayış asla gelmeyecektir.
Yanlış kullanılırsa anlayış gelebileceğini sanmıyorum.
Igor, çarın Fedot'a okçuya verdiği görevi hatırlıyor musun?
Ve o iki iri adam cevap verdi.
Almanız gereken kuralları veya nihai sonucu bilmiyorsanız, bir şeyi nasıl yeniden üretmeyi deneyebilirsiniz ...
Pekala, böyle bir şey mümkün, işte haber zamanının ve haber miktarının farklı ülkeler için farklı olduğuna dair bir taklit:
ancak OOP'ye sarmanız gerekip gerekmediğini öğrenmek için kalır
;)
İşte her şeyin nasıl adlandırıldığının ve sonunda ne olduğunun kaydı:
2019.09.08 16:00:35.031 tst (EURUSD,H1) HaberlerRU::HaberlerRU
2019.09.08 16:00:35.032 tst (EURUSD,H1) HaberlerEN::HaberlerEN
2019.09.08 16:00:35.032 tst (EURUSD,H1) Sahte Haber::HaberSahte
2019.09.08 16:00:35.032 tst (EURUSD,H1) Hata, bu tür FR değil
2019.09.08 16:00:35.032 tst (EURUSD,H1) 1970.01.01'de 1. Haber 00:01:51
2019.09.08 16:00:35.032 tst (EURUSD,H1) 1970.01.01'de 2. Haber 00:03:42
2019.09.08 16:00:35.032 tst (EURUSD,H1) 1970.01.01'de 3. Haber 00:05:33
2019.09.08 16:00:35.032 tst (EURUSD,H1) Haber #1 1970.01.01 00:07:24
2019.09.08 16:00:35.032 tst (EURUSD,H1) Haber #2 1970.01.01 00:09:15
Yanlış kullanılırsa anlayış gelebileceğini sanmıyorum.
En azından "burada balık yok" anlayışı gelecek.)))
Bunu bazı yerel karakterlerden defalarca duyduk.
Ve bu sadece yanlış anlamadan.
Ve balık var!
Pekala, böyle bir şey mümkün, işte haber zamanının ve haber miktarının farklı ülkeler için farklı olduğuna dair bir taklit:
ancak OOP'ye sarmanız gerekip gerekmediğini öğrenmek için kalır
;)
İşte her şeyin nasıl adlandırıldığının ve sonunda ne olduğunun kaydı:
Igor yok. Buradaki yaklaşım bu değil.
Vurgulanan çizgiler üç kullanım durumudur. Bu durumda, zaman aralığı değişir. Ardından değerler[] dizisi belirli bir şekilde işlenir. Olay kimliğine göre, bu olayın bir açıklamasını alırız. Önemi, zamanı ve diğer özellikleri.
Bunu bazı yerel karakterlerden defalarca duyduk.
Ve bu sadece yanlış anlamadan.
Ve balık var!
Bunun hakkında okudum. Balık var ama anlamadığın yerde yok. İşte bir mql5 projesi böyle olmalı ki burada bir balık olsun... En azından mql5'te OOP ihtiyacının görülebileceği bir proje görün.
Sadece OOP'ye gerek yok. Prensip olarak, her şey yapısal bir tarzda yapılabilir. Ancak kişisel olarak, ilk dürtüm, sayıları tehditkar bir şekilde artmaya başlayan küresel değişkenler kümeleri yerine yapıları kullanmaya karar verdiğimde başladı. Eh, zaten yapılardan sınıflara geçtim, çünkü bu yapıların verilerini işleyen bu işlevleri doğrudan onlara entegre etmek mantıklıydı, bu da sınıfların oluşturulmasına yol açtı. Bu bir zorunluluk meselesi değil, sadece verileri organize etmek ve bunlarla çalışmak meselesidir.
Bir nesneyi oluşturulduktan ve işini yaptıktan hemen sonra "öldürmek" gerekli değildir.
MQL programı tamamlandıktan sonra OnDeinit işlevinde oluşturulan nesneleri "öldürebilirsiniz",
program çalışırken tüm nesneler hafızada tutulabilir ve erişilebilir.
Nesne amacına hizmet ettiyse, neden hafızada tutuyor?
Bellek sızıntısı olacak mı?
Igor yok. Buradaki yaklaşım bu değil.
Vurgulanan çizgiler üç kullanım durumudur. Bu durumda, zaman aralığı değişir. Ardından değerler[] dizisi belirli bir şekilde işlenir. Olay kimliğine göre, bu olayın bir açıklamasını alırız. Önemi, zamanı ve diğer özellikleri.
yaklaşım önemli değildir.
OOP'yi anlamak istiyorsanız, o zaman benim görüşüm (zaten yazdım) uygundur, ancak OOP sadece bir paradigmadır, peki, birkaç OOP kavramını birleştiren bir yazma yolu - Wiki...
genel olarak, tam tersini deneyebilirsiniz: işte göreviniz, onu veri ve veri işleme yöntemlerine ayırmanız gerekiyor ...
1. Verileri nerede depolayacaksınız? - büyük olasılıkla yapı budur
2. Verileri nasıl işleyeceksiniz? - büyük olasılıkla bir dizi işlevdir
3. Verileri nasıl başlatacaksınız? - büyük olasılıkla bu bir dizi yapıdır ve bu diziyi sıfırlamak ve ardından onu verilerle doldurmak gerekecektir.
4. Daha önce yazılan kodun esnekliğini nasıl sağlayacaksınız - yeniden düzenleme?
Şimdi OOP kullanırsak:
1. sınıftaki alanlarda, bu alan bir yapı olabilir veya belki veri depolayacak ve devralacak bir temel sınıf yazacağım VEYA bu sınıf şimdi tartıştığımız sınıfta bir alan olacak
2.1. bu bir yöntemler kümesi olacak ve eğer bir temel sınıf yazarsam, belki o zaman temel sınıfta verilerle en basit eylemleri gerçekleştirecek yöntemler oluşturacağım ve eğer temel sınıftan miras alırsam bu yöntemler kullanılabilir olacak bu sınıfta - bu mirastır!
2.2. ve temel sınıftan miras aldıktan sonra sadece bir yöntemi değiştirmek istersem, temel sınıfta hiçbir şeyi yeniden yazmayacağım, buna gerek yok! - Temel sınıfta bire bir metot olarak çağrılacak ve kalıtım olacak bir metot (fonksiyon!) yazacağım!
3. bir kurucu olacak ve eğer bir kurucu yazmadıysam, örtük olarak çağrılacak, bu yüzden miras aldığım her sınıfın ve/veya alanlarımdaki sınıfın her zaman bir kurucuya sahip olacağını unutmam. , ve OOP bana bir kurucu yazmama, parametresiz bir kurucu yazma, parametreli bir düzine daha fazla kurucu yazma fırsatı veriyor
4. OOP kullanarak, önceden oluşturulmuş kod bölümlerini yeniden yazmak gereksizdir, devralabilirsiniz, yapabilirsiniz .... batırabilirsiniz, çoğu durumda derleyici programcıdan sonra temizleyecektir!
Phew, peki, bu benim oldukça amatörce OOP görüşüm, genel olarak, uygun ve her şeyin etkili bir şekilde çalışması için, OOP kullanırken ana iş programcı için değil, derleyici geliştiricileri içindir, bu yüzden alanlardan hangisi / yöntemler kullanılmaz, derlenmiş dosyaya dahil edilmez, burada programcı berbattır, peki, onu uyarın)))