Kişisel bir soru sordu, bu ne anlama geliyor. Forumda cevaplamak için Rushil, çünkü açıklığa kavuşturan faydalı bir örnek buldum.
Bu arada eğer İngilizce konuşuyorsanız böyle bir soruyu MQL'de değil de C++'da Google'da İngilizce olarak sormanız çok faydalı olur. Örneğin bunun gibi
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Tamamen programlama forumlarına çok sayıda bağlantı olacak ve C++, MQL'ye oldukça benzer.
Yorumları Rusça'ya çevirdim ve MQL ile uyumluluk için biraz değiştirdim. Aşağıda betiği ekliyorum, derliyorum ve her şey netleşecek.
Belgeler bunu açıklamıyor mu?
const değiştiricili bir yöntem kalıcı olarak adlandırılır ve sınıfının örtük üyelerini değiştiremez. Sabit sınıf fonksiyonlarını ve sabit parametreleri bildirmeye sabit -doğruluk kontrolü denir . Bu kontrol sayesinde derleyicinin nesnelerin değerlerinin değişmezliğini izleyeceğinden ve herhangi bir ihlal durumunda derleme aşamasında hata vereceğinden emin olabilirsiniz.
const değiştiricisi , sınıf bildirimi içindeki argüman listesinden sonra yerleştirilir. Sınıfın dışındaki tanım, const değiştiricisini de içermelidir :
Bütünlük kontrolünün kullanılması lehine ek bir argüman, bu durumda derleyicinin özel optimizasyonlar gerçekleştirmesidir, örneğin, salt okunur bellekte sabit bir nesne tahsis eder.
Statik bir işlev const değiştiriciyle tanımlanamaz , çünkü bu değiştirici, işlev çağrıldığında örnek üyelerin değişmeyeceğini garanti eder. Ancak, yukarıda belirtildiği gibi, statik bir işlev, tanımı gereği, statik olmayan sınıf üyelerine erişemez.
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Ayrıca bence en başarılı yapılanma örneğini vermemişsiniz (önce yöntemler, sonra veri üyeleri). Ve bu konuda, tüm bunları bir yapıya değil, bir sınıfa sarmak daha iyidir, çünkü Yapılar genellikle bir veri topluluğu olarak kullanılır (yöntemler olmadan).
- www.mql5.com
Belgeler bunu açıklamıyor mu?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Ayrıca bence en başarılı yapılanma örneğini vermemişsiniz (önce yöntemler, sonra veri üyeleri). Ve bu konuda, tüm bunları bir yapıya değil, bir sınıfa sarmak daha iyidir, çünkü yapılar genellikle bir veri birliği olarak kullanılır (yöntemler olmadan).
katkıda bulunur
Bu yüzden rıhtımda bir yerde bunun hakkında yazdıklarını hatırladım, ancak yarasadan hemen bulamadım. Stackoverflow ile hızlı yırtılma örneği. Verileri nereye koyacağım, programcının kişisel bir meselesidir, ancak bunu kendim en başta koydum. Yapıları veya bir sınıfı kullanmak programcının kişisel bir meselesidir)))
katkıda bulunur
Bu yüzden rıhtımda bir yerde bunun hakkında yazdıklarını hatırladım, ancak yarasadan hemen bulamadım. Stackoverflow ile hızlı yırtılma örneği. Verileri nereye koyacağım, programcının kişisel bir meselesidir, ancak bunu kendim en başta koydum. Yapıları veya bir sınıfı kullanmak programcının kişisel bir meselesidir)))
Böylece "kişisel iş" hakkında çok şey söyleyebilirsiniz. Sadece birine açıklarsınız, kişisel olarak değil, herkese açık olarak. Ve "özel konunuz" iyi programlama stiliyle çelişiyor. Ve bunu açıkladığınız kişi ve diğer birçok kullanıcı bunu iyi bir tarz olarak algılayabilir, ki öyle değil.
Ve burada ders almak isteyen (veya belki öğretilen) kişi hakkında, böyle bir "hızlı gaf" çok şey söylüyor.
Hangi üyeler açık, hangileri örtük?
Görünüşe göre, bu bağlamda, bu yöntemi çağıran üyeler bunlar. Veya başka bir deyişle, bunlar metottan bu yolla ulaşılabilen üyelerdir.
C++'da bu, bir yöntemin, mutable olarak bildirilmiş üyeler dışında , bir sınıfın üyelerini değiştiremeyeceği anlamına gelir.
Çünkü MQL'de böyle bir yaban turpu için bekleyemezsiniz, bu da prensipte yöntemin nesneyi değiştiremeyeceği anlamına gelir.
C++'da bu, bir yöntemin, mutable olarak bildirilmiş üyeler dışında , bir sınıfın üyelerini değiştiremeyeceği anlamına gelir.
Çünkü MQL'de böyle bir yaban turpu için bekleyemezsiniz, bu da prensipte yöntemin nesneyi değiştiremeyeceği anlamına gelir.
Bir const yöntemi yalnızca kendisini çağıran nesneyi değiştiremez.
Bu bir hata mı?
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Kişisel bir soru sordu, bu ne anlama geliyor. Forumda cevaplamak için Rushil, çünkü açıklığa kavuşturan faydalı bir örnek buldum.
Bu arada eğer İngilizce konuşuyorsanız böyle bir soruyu MQL'de değil de C++'da Google'da İngilizce olarak sormanız çok faydalı olur. Örneğin bunun gibi
http://www.google.com/search?q=const+in+c%2B%2B+after+function&oq=const+in+c%2B%2B&sourceid=chrome&ie=UTF-8
Tamamen programlama forumlarına çok sayıda bağlantı olacak ve C++, MQL'ye oldukça benzer.
Yorumları Rusça'ya çevirdim ve MQL ile uyumluluk için biraz değiştirdim. Aşağıda betiği ekliyorum, derliyorum ve her şey netleşecek.