- Fonksiyon Çağrısı
- Parametrelerin Geçirilmesi
- Fonksiyonun Aşırı Yüklenmesi
- İşlemin Aşırı Yüklenmesi
- Dışsal Fonksiyonların Tarifi
- Fonksiyonların Dışa Aktarımı
- Olay İşleyici Fonksiyonları
Parametrelerin Geçirilmesi
Makine dilinin argümanları bir alt programa (fonksiyona) geçirmesinin iki yolu vardır. İlk yol değer aracılığıyla aktarmaktır. Argüman değeri bir biçimsel fonksiyon parametresinin içine kopyalanır. Fonksiyon içinde bu parametrede yapılan değişikliklerin hiçbirinin, ilgili çağrı argümanı üzerinde bir etkisi yoktur.
//+------------------------------------------------------------------+
|
İkinci yöntem referans ile geçirmedir. Bu durumda, fonksiyon parametresine bir değer değil, bir değişken referansı geçirilir. Bu, çağrıda belirtilen gerçek parametreyi ifade etmek için kullanılır. Yani, fonksiyonun çağrılmasında kullanılan argümanlar parametre değişimlerinden etkilenecektir.
//+------------------------------------------------------------------+
|
Yukarıda açıklanan yolların ikisi de MQL5 içinde kullanılır, bir istisna dışında: diziler, yapı tipli değişkenler ve sınıf nesneleri her zaman referans ile geçirilirler. Gerçek parametrelerdeki (fonksiyon çağrılarında geçirilen argümanlar) değişikliklerden kaçınmak amacıyla, const erişim belirtecini kullanabilirsiniz. const belirteci ile bildirilmiş değişkenlerin içeriğinde değişiklik yapılması denendiğinde, derleyici bir hata oluşturacaktır.
Not
Bilinmelidir ki parametreler fonksiyona ters sırada geçirilirler. Yani, ilk olarak son parametre hesaplanır ve geçirilir, ardından sondan bir önceki vb. Son olarak hesaplanıp geçirilen parametre ise, açılan parantezin yanında ilk sırada durandır.
Örnek:
void OnStart()
|
İlk çağrıda (yukarıdaki örneğe bakın) i değişkeni ilk olarak dizgilerin birleştirilmesinde kullanılır:
"İlk çağrı (i = "+string(i)+")" |
Burada 'i' değeri değişmemektedir. Ardından i değişkeni a[i++] dizi elemanının hesabında kullanılır. Yani i indisli elemana ulaşıldığında, i değeri artırılır. Değiştirilmiş i değerine sahip ilk parametre, ancak bundan sonra hesaplanacaktır.
İkinci çağrıda i'nin aynı değeri (fonksiyon çağrısının ilk aşamasında hesaplanan) tüm parametrelerin hesaplanmasında kullanılır. i değişkeni sadece ilk parametreler hesaplandıktan sonra yeniden değişir.
Ayrıca Bakınız
Değişkenlerin Görünürlük Alanları ve Ömürleri, Aşırı Yükleme, Sanal Fonksiyonlar, Polimorfizm