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
Hangi yöntemler? İmzalar neler?
Herhangi bir yöntem.
Herhangi bir yöntem.
Peki ya bu?
Evet, tek boyutlu olarak çalışıyoruz. Veri yapısının açıklamasıyla uğraşmanıza gerek yok - her şeyi bir satırda olduğu gibi arka arkaya okuyoruz.
Peki ya bu?
Aynı ada sahip (örneğin, ArrayRemove), farklı boyutlardaki diziler için aynı şekilde tanımlanmış (bir MQL derleyici geliştiricisi değilseniz) bir işlev (örneğin, bir öğeyi kaldırma) tanımlayamazsınız.
Ayrıca birden fazla çağrı seçeneğini aşırı yükleyerek aynı isimde böyle bir fonksiyon tanımlayamazsınız.
Şu şekilde yazmalısın:
ArrayRemove(var&[],int)
ArrayRemove2(var&[][],int)
ArrayRemove3(var&[][][],int)
ArrayRemove4(var&[][][][],int)
Bu nedenle, onları kullanan sınıfların her birinde tüm dizi işlevlerini yeniden tanımlamak istemiyorsanız, çok boyutlu bir diziyle tek boyutlu bir dizi olarak çalışmak anlamsızdır.
Aynı ada sahip (örneğin, ArrayRemove), farklı boyutlardaki diziler için aynı şekilde tanımlanmış (bir MQL derleyici geliştiricisi değilseniz) bir işlev (örneğin, bir öğeyi kaldırma) tanımlayamazsınız.
Ayrıca birden fazla çağrı seçeneğini aşırı yükleyerek aynı isimde böyle bir fonksiyon tanımlayamazsınız.
Şu şekilde yazmalısın:
ArrayRemove(var&[],int)
ArrayRemove2(var&[][],int)
ArrayRemove3(var&[][][],int)
ArrayRemove4(var&[][][][],int)
Bu nedenle, onları kullanan sınıfların her birinde tüm dizi işlevlerini yeniden tanımlamak istemiyorsanız, çok boyutlu bir diziyle tek boyutlu bir dizi olarak çalışmak anlamsızdır.
Evet. Ama öyle bir sorun değil.
Aynı ada sahip (örneğin, ArrayRemove), farklı boyutlardaki diziler için aynı şekilde tanımlanmış (bir MQL derleyici geliştiricisi değilseniz) bir işlev (örneğin, bir öğeyi kaldırma) tanımlayamazsınız.
Ayrıca birden fazla çağrı seçeneğini aşırı yükleyerek aynı isimde böyle bir fonksiyon tanımlayamazsınız.
Şu şekilde yazmalısın:
ArrayRemove(var&[],int)
ArrayRemove2(var&[][],int)
ArrayRemove3(var&[][][],int)
ArrayRemove4(var&[][][][],int)
Bu nedenle, onları kullanan sınıfların her birinde tüm dizi işlevlerini yeniden tanımlamak istemiyorsanız, çok boyutlu bir diziyle tek boyutlu bir dizi olarak çalışmak anlamsızdır.
İlya, programlamadan görev belirlemeye gidiyorsun.
Geri sürün, tersini yapın.
Torunum zaten uyuyor, aksi takdirde MT'nin hafızasındaki dizinin elemanlarının sürekli olarak yer aldığı gerçeğine dikkatinizi çekerdi.
MT belleğindeki dizinin elemanları bitişiktir.
Ve bunun görevle ne ilgisi olduğunu düşünüyorsunuz (bir görev sınıfı - işlevler aracılığıyla farklı boyutlardaki dizilerle birleşik çalışma)?
Örneğin, boyutundan bağımsız olarak diziden bir öğeyi kaldırmak için bir işlev yapmak istiyorsunuz. Veya farklı boyutlardaki dizilerle çalışan bir sınıf yapmak istiyorsunuz. Bunu mql'de yapabileceğini düşünüyor musun?