OOP, mql5'te şablonlar ve makrolar, incelikler ve kullanım teknikleri - sayfa 26
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
Bir sorun var mı:
" Yeni Çubuk " ve "Veri Yöneticisi" sınıflarını kullanan bir "Program" sınıfı vardır. "Yeni Çubuk" sınıfı da "Veri Yöneticisi"ni kullanır. "Data Manager" sınıfı, genel alıcıları ve ayarlayıcıları uygular.
Soru: Programı başlatırken "Veri Yöneticisi" sınıfının "sembol" ve "zaman çerçevesi" özelliklerini ayarlamak için "Yeni çubuk" sınıfı için hangi seçenekler var? Veri yöneticisinin alanlarına erişmek için "Yeni Çubuk" sınıfında genel alıcılara ve ayarlayıcılara sahip olmak istemiyorum . Veri yöneticisinin kendisi gizli kalmak istiyor.
Başka bir deyişle: bir program, bir veri yöneticisi kullanan birçok sınıfı kullanabilir. Ve programı başlatırken, tüm sınıfların tüm yöneticilerinin alanlarını gerekli değerlerle başlatmanız gerekir. Ancak tüm sınıflarda, veri yöneticisinin alanlarına erişmek için alıcıları çitle çevirmek istemezsiniz. Bunun gibi bir şey...
Açıklamanıza göre, bu ayarları yalnızca tüm yöneticiler için değil, tüm yöneticiler için ortak olan ayrı bir varlığa ayırmak mantıklıdır.
Evet, yönetici alanları için alıcıları olan bir temel sınıftan bir yöneticiye ihtiyaç duyduğunuz sınıfları devralmanız gerekiyor gibi görünüyor. Teşekkür ederim.
Bir sorun var mı:
" Yeni Çubuk " ve "Veri Yöneticisi" sınıflarını kullanan bir "Program" sınıfı vardır. "Yeni Çubuk" sınıfı da "Veri Yöneticisi"ni kullanır. "Data Manager" sınıfı, genel alıcıları ve ayarlayıcıları uygular.
Soru: Programı başlatırken "Veri Yöneticisi" sınıfının "sembol" ve "zaman çerçevesi" özelliklerini ayarlamak için "Yeni çubuk" sınıfı için hangi seçenekler var? Veri yöneticisinin alanlarına erişmek için "Yeni Çubuk" sınıfında genel alıcılara ve ayarlayıcılara sahip olmak istemiyorum . Veri yöneticisinin kendisi gizli kalmak istiyor.
Başka bir deyişle: bir program, bir veri yöneticisi kullanan birçok sınıfı kullanabilir. Ve programı başlatırken, tüm sınıfların tüm yöneticilerinin alanlarını gerekli değerlerle başlatmanız gerekir. Ancak tüm sınıflarda, veri yöneticisinin alanlarına erişmek için alıcıları çitle çevirmek istemezsiniz. Bunun gibi bir şey...
Aynen öyle yapıyorum.
Aynen öyle yapıyorum.
Örnek için teşekkürler, şimdilik biraz zor, ama genel olarak fikir açık. Soru hemen ortaya çıkıyor: tamam, eğer "bir seviye yuvalama" ise - burada açık, ama ya birkaç yuvalama seviyesi varsa?
Katma:
Ayrıca cIsDelData alanının neden açık değil? Sonuçta, yıkıcıda, POINTER_DINAMIC için m_data'yı kontrol edebilirsiniz. Yoksa yanılıyor muyum?
Kalıtım yaparsanız, o zaman birçok gereksiz yöntem ortaya çıkacaktır. Ve nesne özel olmalıdır. Bu nedenle, buna inanmayacaksınız, ancak bunu yapmanın en kolay yolu, veri yöneticisi kullanan tüm sınıflar için ayarlayıcılardır.
Tüm veri yöneticileri aynı parametrelerle çalışıyorsa, nesneleri çoğaltmak değil, bir işaretçiyi bir veri yöneticisine iletmek daha iyidir. Bu durumda, işaretçiyi geçmek için yalnızca bir ayarlayıcıya ihtiyaç duyulacaktır.
Örnek için teşekkürler, şimdilik biraz zor, ama genel olarak fikir açık. Soru hemen ortaya çıkıyor: tamam, eğer "bir seviye yuvalama" ise - burada açık, ama ya birkaç yuvalama seviyesi varsa?
Katma:
Ayrıca cIsDelData alanının neden açık değil? Gerçekten de, yıkıcıda, POINTER_DINAMIC için m_data'yı kontrol edebilirsiniz. Yoksa yanılıyor muyum?
Teşekkürler, bunu düşüneceğim.
Aynen öyle yapıyorum.
bu satır ne anlama geliyor CDataManager* m_data;
Arkadaşlar bende böyle bir şey yapmak istiyorum. bir makro var
Sonuç olarak, foor ve foor1 olmak üzere 2 makrom olacak.
bu satır ne anlama geliyor CDataManager* m_data;
Arkadaşlar bende böyle bir şey yapmak istiyorum. bir makro var
Sonuç olarak, foor ve foor1 olmak üzere 2 makrom olacak.
Bir nesneye işaretçi.
Alınma ama bu tür makrolarla senin için çok erken, boğulacaksın. İlk önce, bunu neden yaptığımı anlayın: