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
Her neyse, OOP "Nesne" de ne var bana ulaşmıyor.
"Bir nesne bir sınıfın örneğidir" diyor. Bir sınıfın birden çok örneği olabilir. Ancak bu örnekler yalnızca sınıf referanslarıdır. Sınıf alanlar içerir. Alanlar bir nesnenin özellikleridir . Yöntemler, bir nesnenin belirli özelliklerinin değerlerini işleyen motorun öğeleridir.
Anladığım kadarıyla, bir nesne adlandırılmış (veya numaralandırılmış) bir özellik kümesidir. Özellik değerleri, çeşitli büyük blok mekanizmaları tarafından işlenir. Temelde, aynı şey. Sadece farklı yazılmış. OOP'de, kapsülleme uğruna işlevsellik bölünür. Bana - aksine - bir işlevsellik konsolidasyonu.
Soruyu grafik alanına çevirirsek, "CButton" sınıfı benim Button öğem ile aynıdır. Benim uygulamamda, bunlar çekirdekte her biri bir dizi özellik olan üç nesnedir. Sınıfta, bu aynı zamanda özellikler (alanlar), düğme yöntemlerinin bir listesidir (ayrı ayrı düğmelere ait yöntemlerim yok. Düğmenin işlevselliği global işlev bloklarının içinde bulunur). Bu bloklarda, düğme herhangi bir öğe gibi ele alınır, ancak belirli yerlerde kendi koşulları ve işleyicileri vardır. OOP'de, aynı düğme işlevi yalnızca örnekler aracılığıyla erişilebilen bir sınıfta kapsüllenir.
George, her kütüphanede, her çözümde bir çeşit konsept vardır. Başka birinin konseptini alıp ona göre kendi konseptimi geliştirmeye çalışırsam, kavramsal bir çöküş yaşayabilirim çünkü iki veya daha fazla konsept üzerine kurulmuş bir sistem istikrarlı olamaz. Bu nedenle, yenilikçi şeylerin kendiniz ve sıfırdan geliştirilmesi gerekir. Diğer yazarların "genel" hataları ve çelişkileriyle uğraşmamak için.
Peter, boş yere tartışıyorsun. Bir şey kanıtlamak imkansız. Ayrıca, _Symbol kullanmak yerine CSymbolInfo kitaplığını bağlamayı ve bir object.Name() yazmayı önerdiklerinde bu programlama yaklaşımını anlamıyorum.
Bu tür SB yöntemlerinin kullanımını anlamıyorum, örneğin
yazmak ne kadar zor
Her iki durumda da, yalnızca bir kod satırı vardır.
Öte yandan Artyom, içinde kaybolduğum, hiçbir şey anlamadığım ve kullanmadığım OOP'nin olanaklarını bana gösterdi.
Çok değil.
Burada farklı bir şekilde açıklayacağım. Genelde kimse bunu bu şekilde açıklamaz.
Tüm programcılar ne olduğunu bilir, örneğin int x ;
Şimdi int kelimesinin bir sınıf adı gibi olduğunu hayal edin. Neyi tarif ediyor? bu nedir:
1. tam sayı
2. bellekte 4 bayt yer kaplar
3. + - değerlerini belli sınırlar içinde alır. (bu kadarı yeter);
Ve int x yazdığımızda; sonra int türünde bir x nesnesi bildiririz. x zaten fiziksel olarak RAM'de 4 baytlık bir alanı kaplar.
Peter, boş yere tartışıyorsun. Bir şey kanıtlamak imkansız. Ayrıca, _Symbol kullanmak yerine CSymbolInfo kitaplığını bağlamayı ve bir object.Name() yazmayı önerdiklerinde bu programlama yaklaşımını anlamıyorum.
Örneğin, bu tür SB yöntemlerinin kullanımını anlamıyorum.
yazmak ne kadar zor
Her iki durumda da, yalnızca bir kod satırı vardır.
Öte yandan Artyom, içinde kaybolduğum, hiçbir şey anlamadığım ve kullanmadığım OOP'nin olanaklarını bana gösterdi.
Anlamın bu versiyonunda Sınıf, alet, malzeme, hammadde ve makine aletleri deposudur. Miras alınan sınıfların hiyerarşisi - "fabrika" nın dükkanları gibi.
Peter, neden böyle inceliklere giriyorsun?
Sınıf, bir nesnenin tanımı , özellikleri ve bu özellikleri ayarlamak ve bunlara erişmek için kullanılan yöntemlerdir.
Bir nesne, bir sınıf türüyle bir değişken tanımladığımızda veya new operatörüyle bu sınıftan yeni bir nesne oluşturduğumuzda.
Örneğin, bu sınıf:
Sınıfın yalnızca iki üyesi vardır - tür ve ad. Bunlar onun özellikleri. Ve bu bir nesne değil. Bu, gelecekteki bir nesnenin planı, çizimi, projesidir.
Bir nesne oluşturuyoruz:
CClass class_obj; // Объявили переменную class_obj с типом класса CClass. Теперь class_obj - это объект
Bir nesne ve ona bir işaretçi oluşturun:
George, her kütüphanede, her çözümde bir çeşit konsept vardır. Başka birinin konseptini alıp ona göre kendi konseptimi geliştirmeye çalışırsam, kavramsal bir çöküş yaşayabilirim çünkü iki veya daha fazla konsept üzerine kurulmuş bir sistem istikrarlı olamaz. Bu nedenle, yenilikçi şeylerin kendiniz ve sıfırdan geliştirilmesi gerekir. Diğer yazarların "genel" hataları ve çelişkileriyle uğraşmamak için.
Sadece yedi (!) not var. Onlarda ne kadar müzik var? Ve tek bir besteci çöküşü düşünmüyor. Sadece ruhta çalan müzikler yazıyor. Başka bir şey icat etmez, bu yedi notayı kullanır.
Peter, neden böyle inceliklere giriyorsun?
Sınıf, bir nesnenin tanımı , özellikleri ve bu özellikleri ayarlamak ve bunlara erişmek için kullanılan yöntemlerdir.
Bir nesne, bir sınıf türüyle bir değişken tanımladığımızda veya new operatörüyle bu sınıftan yeni bir nesne oluşturduğumuzda.
Örneğin, bu sınıf:
Sınıfın yalnızca iki üyesi vardır - tür ve ad. Bunlar onun özellikleri. Ve bu bir nesne değil. Bu, gelecekteki bir nesnenin planı, çizimi, projesidir.
Bir nesne oluşturuyoruz:
Bir nesne ve ona bir işaretçi oluşturun:
Sınıf, bir nesnenin açıklamasıdır. İyi. Bir nesnenin özelliklerini ve işlevselliğini içerir. TAMAM. Bütün bunlar emredilir, açılır veya korunur.
O zaman NESNE KENDİSİ perde arkasındadır. Sınıf bağlamındadır. Adı ve açıklaması bağlamında. Yani, OOP'de bir Nesne, adlandırılmış bir nitelikler kompleksidir (yalnızca özellikler değil, aynı zamanda işlevsel öğeler - yöntemler), ancak benimkinden daha düzenli ve kapsüllüdür. (Bu benim için daha net hale getiriyor.)
Bu tür SB yöntemlerinin kullanımını anlamıyorum, örneğin
yazmak ne kadar zor
OOP kavramının kendisi sadece yazmamayı ima eder - yöntemin uygulamasını bilmenize gerek yoktur (örneğinizde, return(SymbolSelect(m_name,select)))
bu satır yerine şunu hayal edin:
çok sayıda istek, çeşitli kontroller vb. gerçekleştirmeniz gerekiyor. - kendi kütüphanenizi yazmanız ve materyalin kendisini incelemeniz zaman alacaktır
Görevinizin yalnızca bir sınıf biçiminde hazır bir çözümün yöntemini kullanmaya başlamasına izin verin - sınıfın (nesnenin) bir örneğini oluşturursunuz ve hazır Select (const bool select) yöntemini kullanırsınız
Daha fazla bu tür işlemlerin yapılması gerekmiyorsa, boş hafıza = nesneyi yok et
Göreviniz, piyasa saatinde sembolü etkinleştirdiğiniz / devre dışı bıraktığınız bir düğmeye basarak bir düğmeyi görüntülemeye indirgensin ---> kendi sınıfınızı oluşturun ve hazır düğme sınıfını ve hazır CSymbolInfo sınıfını içine alın - tüm görev çözüldü
OOP paradigması, yalnızca sınıfla neler yapabileceğiniz hakkında genel bilgi verir - CSymbolInfo'yu kapsüllemek istemiyorsanız - peki, sınıfınızı ondan alın
Not: "parmaklarda" ise , OOP'nin özü , uygulamayı bilmeden göreve hızlı bir çözümdür
Sınıf, bir nesnenin açıklamasıdır. İyi. Bir nesnenin özelliklerini ve işlevselliğini içerir. TAMAM. Bütün bunlar emredilir, açılır veya korunur.
O zaman NESNE KENDİSİ perde arkasındadır. Sınıf bağlamındadır. Adı ve açıklaması bağlamında. Yani, OOP'de bir Nesne, adlandırılmış bir nitelikler kompleksidir (yalnızca özellikler değil, aynı zamanda işlevsel öğeler - yöntemler), ancak benimkinden daha düzenli ve kapsüllüdür. (Bu benim için daha net hale getiriyor.)
Her şeyi anlamak için kitap okumak gerekir. 21 günde en az VC++.
MFC'yi ilk kez kullanmanızı, CDialog tabanlı bir windows uygulaması oluşturmanızı, her türlü nesneyi oluşturmanızı ve ne kadar kolay yönetildiğini görmenizi tavsiye ederim.
Ondan sonra fikrinizi çöpe atacaksınız. Ne yazık ki.