Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Derleme düğmesi sonsuza kadar kayboldu (geri dönmek için düzenleyiciyi yeniden başlatmanız gerekir)
Eh, pek değil.. :) Dönmeyi başardım :)
Bunu yapmak için, özyinelemeli parçayı yorumlamanız ve hata ayıklama derleme düğmesine tıklamanız gerekir.
1. İç temel olmayan sınıf öğelerini dışa "açığa çıkarmak" (ve bu örnekte, özniteliğin kendisini değil, yalnızca bir dizi öğesini !) Özellikle değerini değiştirme yeteneği ile güvenli değildir.
2. Ek olarak, bu, nesne yönelimli programlamanın "ruhu" ile çelişir: nesnenin verileriyle yapılan tüm çalışmalar, kendi yöntemlerini kullanarak nesnenin içinde yapılmalıdır..
3. Veri özelliği için sadece bir Setter kullanmaya ne dersiniz?
4. Kod yalnızca okunabilirlikten yararlanacaktır.
5. Sonuç olarak, l-değer indeksleyici ile bu "basitlik", siz dahil hiç kimsenin bu kodun nasıl çalıştığını anlamamasını sağlayacaktır..
6. Bir Setter yazmaktansa bug aramak için daha fazla zaman harcayın.
Nedir bu, kara mizah mı?
1. Üzgünüm, - saçmalık. Paranoyanın burada moda olduğunu ve "bunu neden yapmayalım" için bir levye argümanı olduğunu anlıyorum. Herhangi bir tehlike görmüyorum. Varsa dikkatlice baktım. Herhangi bir isim nihayetinde bir bağlantıdır. Dizin oluşturma, ad kavramının yaygın bir uzantısıdır. Daha fazla yok. Görevlendirmeyi tamamen yasaklayalım. Güvenlik için. Bağlantılar son derece tehlikeli değil mi?
2. Böyle bir mantıkla nesne yönelimli programlama ruhu, indeksleyicilerin hem sağda hem de solda mükemmel bir şekilde çalıştığı birkaç düzine daha az popüler dil olan C++, C#, Delphi ile şiddetle çelişmektedir. Ve nedense bu sağduyu ve ruhumla çelişmiyor.
Dizin oluşturucular dış ortamla iletişim kurmak için yapılmıştır. İşlevleri sadece bir arayüzdür. Her şeyi kapsülleyebilir ve gizleyebilirim, ancak nesneler üzerinde diziler olarak çalışmak için dizinlere ihtiyacım var. Aslında, tüm diziler bir şekilde düzenlenmiştir. Örneğin, sıradan dinamik diziler mql. Atama operatörünün solunda onları yasaklayabilir miyiz? Bunu SetArrayValue(array, i, j, value) türünde bir fonksiyonla değiştirelim; Aynı zamanda okunabilirlik konusunda da kazanacağız. Evet ve hata ayıklama çok daha kolay olacak. Falan. ah..
3. Normal bir indeksleyici yapmaya ne dersiniz? Hizmetçi kesinlikle havalı ama kraliçe daha da iyi.
4. İşte burası özellikle çatım gitmeye başladı. Okunmaz mı??
Bu daha okunaklı, değil mi?
t.setDataElement(i, i*i);
Güzel. Belki tedaviye giderim.
5. Sonunda havalı.
6. ağladım.
630 derlemesinde gösterge derlemeyi durdurdu:
c i için beyan daha önce yerleştirilirse hata kaldırılabilir .
Peki ya 'rates_total' - bildirilmemiş tanımlayıcı ?
Win7 x64 ve XP x32 için aynı.
Lütfen bana söyle. MathMin () ve MathMax (), işlevler (yığından geçen parametre ile) veya makro ikamesi ( satır içi ) olarak mı uygulanıyor? Referans kitabına bakılırsa, bunlar işlevlerdir .
Gösterge, yapı 630'da derlemeyi durdurdu:
c hatası için bildirim daha önce yerleştirilirse kaldırılabilir
Peki ya 'rates_total' - bildirilmemiş tanımlayıcı ?
Win7 x64 ve XP x32 için aynı.
Belli ki kodunuzda bir yerde bir hata var. Değişken limitini, RT'yi bildirirseniz ve if () koşulunu ayarlarsanız, sunulan blok hatasız derlenir.
Doğal olarak, çünkü kodu ben vermedim, yaklaşık yapısını verdim.
619'da gösterge derlendi ve mükemmel çalıştı.
630'da belirtilen hataları veriyor.
%100 kod değişmedi. Derleyici açıkça değişti.
Böcek?
Aşağıdaki kod, derleyicide sonsuz bir döngü gibi bir şey oluşturur. İptal'e tıklayarak (derlemeyi iptal edin)
hemen çalışmaz, ancak çalıştığında editör üzerindeki kontrolü geri verir.
Aynı zamanda, İptal düğmesinin kendisi kaybolmaz, ancak kullanılabilir de kalmaz.
Derleme düğmesi sonsuza kadar kayboldu (geri dönmek için düzenleyiciyi yeniden başlatmanız gerekir)
Lütfen bana söyle. MathMin () ve MathMax (), işlevler (yığından geçen parametre ile) veya makro ikamesi ( satır içi ) olarak mı uygulanıyor? Referans kitabına bakılırsa, bunlar işlevlerdir .
İşlevler, elbette, çünkü derleme zamanında argümanların değerleri bilinmiyor. IMHO satır içi ve makro ikameleri farklı şeylerdir.
Not: Satır içi olup olmadıklarını söyleyemem.
İşlevler, elbette, çünkü derleme zamanında argümanların değerleri bilinmiyor. IMHO satır içi ve makro ikameleri farklı şeylerdir.
Not: Satır içi olup olmadıklarını söyleyemem.
Bir makro ve bir satır içi işlev gerçekten farklı şeylerdir. Ama bundan bahsetmiyorum. İşte derleme zamanında argümanların değerlerinin bilinmediği bir örnek
İlk durumda, kod mevcut fonksiyona (muhtemelen) eklenmelidir ve ikinci durumda, fonksiyon, yığından geçen parametrelerle (muhtemelen) çağrılmalıdır. Ancak optimize etmek için, derleyici ikinci seçeneği ikame yoluyla uygulayabilir. öyle mi? Bilmiyorum. Bu yüzden sordum.