- Tam Sayı Tipleri
- Reel Tipler (double, float)
- Karmaşık sayı (complex)
- String Tipi
- Yapılar, Sınıflar ve Arayüzler
- Dinamik Dizi Nesnesi
- Matrisler ve vektörler
- Tip Dönüşümü
- Void Tipi ve NULL Sabiti
- Kullanıcı Tanımlı Tipler
- Nesne İşaretçileri
- Referanslar: Şekillendirici & ve Anahtar Sözcük this
Kullanıcı tanımlı tipler
C++ da kullanılanılan typedef sözcüğü kullanıcı tanımlı veri tiplerinin oluşturulmasını sağlar. Bunun için varolan bir veri tipine yeni bir isim verin. Burada yeniş bir veri tipi oluşturulmayacaktır. Bunun yerine varolan tip için yeni bir isim tanımlanacaktır. Kullanıcı tanımlı tipler uygulamalarınızı daha esnek hale getirir: bazen ikame makroları (#define) kullanarak typedef'i değiştirmek yeterlidir. Kullanıcı tanımlı tipler kodun okunaklılığını artırır (çünkü typedef kullanımıyla standart veri tiplerine daha anlaşılır isimler verebilirsiniz). Kullanıcı tanımlı veri tipi oluşturmak için genel format:
typedef type yeni_isim; |
Burada, type kullanılabilir veri tipidir, yeni_isim ise söz konusu tipin yeni ismidir. Yeni isim sadece mevcut isme ek olarak ayarlanır (onun yerini almaz). MQL5 dili, typedef kullanımı ile fonksiyon işaretçileri oluşturabilmenizi sağlar.
Fonksiyon işaretçisi
Fonksiyon işaretçileri genelde şu şekilde tanımlanır
typedef fonksiyon_sonuç_tipi (*Fonksiyon_isim_tipi)(giriş_parametrelerinin_tipleri); |
burada typedef sözcüğünden sonra, fonksiyonun imzası (giriş parametrelerinin sayısı ve tipleri ve fonksiyonun dönüş tipi) ayarlanır. Aşağıda bir fonksiyona işaretçi ayarlanmasını gösteren bir örnek verilmiştir:
//--- int tipli iki giriş parametresi olan bir fonksiyonun işaretçisini bildir
|
Bu örnekte func_ptr değişkeni sub ve add fonksiyonlarını alabilir (int tipli iki girdi değişken TFunc fonksiyon işaretçisinde tanımlanmış). Aksine, neg fonksiyonu işareti farklı olduğu için func_ptr işaretçisine atanamaz.
Kullanıcı arayüzündeki olay modellerinin düzenlenmesi
Kullanıcı arayüzleri oluştururken fonksiyon işaretçileri ile olay işleyicileri oluşturebilirsiniz. Düğmeler oluşturmak ve bunlara basıldığında ilgili olayın işlenmesini sağlayacak fonksiyonları eklemek için CButton bölümünden bir örnek kullanalım. Önce, düğmeye basıldığında çağrılacak TAction fonksiyonunun işaretçisini tanımlayın ve TAction açıklamasına göre üç fonksiyon oluşturun.
//--- özel fonksiyon tipi oluştur
|
Sonra, CButton sınıfını kullanarak MyButton sınıfını oluşturun, burada TAction işaretçisini fonksiyona eklemeliyiz.
//+------------------------------------------------------------------+
|
CControlsDialog sınıfını CAppDialog sınıfından türeterek oluştur, MyButton tipli düğmeleri kaydetmek için m_buttons dizisini ve AddButton(MyButton &button) ve CreateButtons() yöntemlerini ekle.
//+------------------------------------------------------------------+
|
Şimdi, üç düğmeli (Open, Save ve Close) kontrol paneli CControlsDialog ile programı geliştirebiliriz. Bir düğmeye basıldığında, TAction işaretçisi biçimindeki uygun bir fonksiyon çağrılacaktır.
//--- program başlatıldığında otomatik olarak oluşturulması için nesneyi global seviyede bildir
|
Çalıştırılan uygulamanın görünümü ve düğmelerin tıklanmalarının sonuçları ekran görüntüsünde verilmiştir.
Programın tam kaynak kodu
//+------------------------------------------------------------------+
|
Ayrıca bakınız