OOP, mql5'te şablonlar ve makrolar, incelikler ve kullanım teknikleri - sayfa 9
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
"Yığın taşmasına" tepki verdim")
Hamamböceği gibi görünüyor...Yani bu bir derleyici değil, zaten çalışma zamanında. Ve derleyici yanıt vermelidir.
Bunu VS 2010'da denedim:
Derleme hatası alıyorum: Hata 1 hatası LNK2001: çözülmemiş harici sembol "public: virtual int __thiscall A::f2(void)"
Ve Metaeditor sessizdir. İyi değil.
Derleyicinin bu şekilde tepki vermesi gerekir.
Bunu VS 2010'da denedim:
Derleme hatası alıyorum: Hata 1 hatası LNK2001: çözülmemiş harici sembol "public: virtual int __thiscall A::f2(void)"
Metaeditör sessizdir. İyi değil.
Alexey, lütfen bana parmaklarınla açıkla, eğer mql C'ye benziyorsa, o zaman kesinlikle aynı olmalı ve sola bir adım, sağa bir adım - yürütme?
Geliştiriciler dikkatsizce böyle koydu diye mi? Ancak herhangi bir dil, döngüler ve koşullar üzerine kuruludur. Diğer her şey fragmanda. Bazı nedenlerden dolayı, hiç kimse başka bir dilin OOP açısından veya C'ye başka bir şey açısından benzer olmasını gerektirmez.
Alexey, lütfen bana parmaklarınla açıkla, eğer mql C'ye benziyorsa, o zaman kesinlikle aynı olmalı ve sola bir adım, sağa bir adım - yürütme?
Geliştiriciler dikkatsizce böyle koydu diye mi? Ancak herhangi bir dil, döngüler ve koşullar üzerine kuruludur. Diğer her şey fragmanda. Bazı nedenlerden dolayı, hiç kimse başka bir dilin OOP açısından veya C'ye başka bir şey açısından benzer olmasını gerektirmez.
Veya tüm bunların kod yazmayı kolaylaştırabileceği, kısaltabileceği veya en azından hatalardan koruyabileceği bir örnek gösterebilir misiniz? Ve lütfen, soyut işlevlerle değil, bir danışman veya göstergede ticaretin gerçeklerine mümkün olduğunca yakın.
Mümkün değil. Adamlar sadece fantezilerini gerçeğe çekmeye çalışıyorlar.
Mümkün değil. Adamlar sadece fantezilerini gerçeğe çekmeye çalışıyorlar.
Bu doğru. Ancak uzun zamandır alternatif bir seçenek kullanıyorum: Başlangıçta tüm arayüzleri bir ara şablon sınıfı olarak tasarlıyorum:
Böylece, herhangi bir sayıda bu tür arabirimlerden bir kalıtım zinciri oluşturabilirsiniz. Evet, elbette onlarla dynamic_cast yapamazsınız ama bu çok sık bir ihtiyaç değil. Ana görev, işlevlere transferdir.Daha dikkatli okudum, bu arada ilginç bir hareketin var. Bunu daha önce düşünmemiştim =) Boş zamanlarımda da deneyeceğim ...
Bana gelince, fantezileri gerçeğe çekmek çok faydalı bir meslek. Gelişimin anlamı budur!
Ve en önemlisi - verimli! Geliştiriciler sonunda bizi duydu ve herkesin yıllardır tökezlediği bu hatayı düzeltmeye karar verdi.
Ancak forumun bazı üyelerinin yıkıcı konumu elbette şaşırtıcı. Ve kendileri gelişmezler - ve inanılmaz bir azimle başkalarına müdahale etmeye çalışırlar.
>> Evet, elbette onlarla dynamic_cast yapamazsınız ama bu çok sık bir ihtiyaç değil. Ana görev, işlevlere transferdir.
Evet, neden yapmıyorsunuz, sorunları biliyorsunuz) Ama sonra asıl kabusunuz ortaya çıkıyor - derleme aşamasında döküm hatalarını tespit edememek :)
>> Evet, elbette onlarla dynamic_cast yapamazsınız ama bu çok sık bir ihtiyaç değil. Ana görev, işlevlere transferdir.
Evet, neden yapmıyorsunuz, sorunları biliyorsunuz) Ama sonra asıl kabusunuz ortaya çıkıyor - derleme aşamasında döküm hatalarını tespit edememek :)
Evet ve genel durumda hala bir anlam ifade etmiyor. Sonuçta, miras zinciri herhangi bir şey olabilir: en azından Interface<CBase>, en azından Interface<C<B<A<CBase>>>>, sayısız seçenek var. Gerçekçi olmayan tüm olası seçeneklere sırayla CBase yayınlamanız gerekecek.
Arayüzler hakkındaki bilgilerin depolanmasını sınıf nesnesinin kendisinde uygulayacağımı hatırlıyorum. Ve mevcut arabirim pedlerine ek olarak, pedimizde sarmalayıcı olarak çalışacak bağımsız arabirim sınıfları yapın. Evet, ancak o zaman tüm bunların gereksiz ve gereksiz olduğu sonucuna vardım. Herhangi bir arayüze temel sınıf atamak için pratik bir ihtiyaç görmedim. Bu sadece biraz mantıksız. Tek seçenek, sınıfın hata ayıklama amacıyla belirli bir arabirimi destekleyip desteklemediğini bulmaktır, ancak bu, bu şekilde yayınlamayı gerektirmez.