- Yerel Değişkenler
- Biçimsel Parametreler
- Statik Değişkenler
- Global Değişkenler
- Giriş Değişkenler
- Extern Değişkenler
- Değişkenlerin Başlatılması
- Değişkenlerin Görünürlük Alanları ve Ömürleri
- Nesnelerin Oluşturulması ve Silinmesi
Değişkenler
Değişkenlerin Bildirimi
Değişkenler kullanılmadan önce bildirilmelidir. Tanımlama için benzersiz isimler kullanılır. Bir değişkeni bildirmek için tipini ve benzersiz ismini belirtmelisiniz. Değişken bildirimi bir işlemci değildir.
Bildirimde kullanılabilecek basit tipler şunlardır:
- char, short, int, long, uchar, ushort, uint, ulong – tamsayılar;
- color – RGB renklerinin tamsayı temsili;
- datetime – tarih ve zaman, 1 Ocak 1970 tarihinin sıfır anından beri geçen saniyeleri içeren işaretsiz bir tamsayı;
- bool – mantıksal değerler true (doğru) ve false (yanlış);
- double – kayan noktalı çift duyarlık sayısı;
- float – tek duyarlık kayan noktalı sayı;
- string – karakter dizgileri.
Örnekler:
string szInfoBox;
|
Karmaşık yada bileşik tipler:
Yapılar kompozit veri tipleridir, diğer tipler kullanılarak inşa edilirler.
struct MyTime
|
Yapıyı bildirmeden yapının değişkenlerini bildiremezsiniz.
Dizi, aynı tipli verilerin indislenmiş dizilimidir:
int a[50]; // 50 tamsayıdan oluşan tek boyutlu dizi.
|
Dizi indisleri tamsayı olmak zorundadır. Dört boyuttan yüksek dizilere izin verilmez. Dizi elemanları 0 'dan başlanarak indislenir. Tek boyutlu bir dizinin son elemanının indisi, dizinin toplam eleman sayısından bir küçüktür. Yani, 50 elemanlı bir dizinin son elemanının çağrısı a[49] şeklinde olacaktır. Aynı durum çok boyutlu dizilerde de geçerlidir: Her boyut, 0'dan 'boyut sayısı - 1' değerine kadar indislenir. Örnekteki iki boyutlu dizinin son elemanı m[6][49] şeklinde olacaktır.
Statik diziler zaman serisi şeklinde ifade edilemezler. Yani dizi elemanlarına erişimi sondan başa doğru ayarlayan ArraySetAsSeries() bunlara uygulanamaz. Eğer bir diziye zaman serilerinde olduğu gibi erişim sağlamak istiyorsanız, bir dinamik dizi nesnesi kullanın.
Dizi kapsamının dışına bir erişim denemesi olduğunda, çalıştırma alt sistemi bir kritik hata oluşturacaktır ve program duracaktır.
Dizilerle çalışmak için yerleşik metotlar #
Dizilerle çalışmak için yerleşik metotların yanı sıra dizi fonksiyonları bölümündeki fonksiyonları da kullanabilirsiniz.
Metot |
Analog |
Açıklama |
---|---|---|
void array.Fill(const scalar value, const int start_pos=0, const int count=-1); |
Diziyi belirtilen değerle doldurur |
|
void array.Free(); |
Dinamik dizi arabelleğini serbest bırakır ve sıfır boyutunun büyüklüğünü 0 (sıfır) olarak ayarlar |
|
int array.Resize(const int range0_size, const int reserve); int array.Resize(const int range_sizes[], const int reserve); |
Dizinin birinci boyutu için yeni büyüklük ayarlar |
|
int array.Print(); |
Basit türde dizinin değerlerini günlükte görüntüler |
|
int array.Size(const int range=-1); |
Tüm dizideki (range=-1) veya belirtilen dizi boyutundaki öğelerin sayısını geri döndürür |
|
bool array.IsDynamic(); |
Dizinin dinamik olup olmadığını kontrol eder |
|
bool array.IsIndicatorBuffer(); |
|
Dizinin bir gösterge arabelleği olup olmadığını kontrol eder |
bool array.IsSeries(); |
Dizinin bir zaman serisi olup olmadığını kontrol eder |
|
bool array.AsSeries(); |
Dizinin indeksleme yönünü kontrol eder |
|
bool array.AsSeries(const bool as_series); |
Dizinin indeksleme yönünü ayarlar |
|
int array.Copy(const src_array[], const int dst_start, const int src_start, const int cnt); |
Dizi değerlerini başka bir diziye kopyalar |
|
int array.Compare(const src_array[], const int dst_start, const int src_start, const int cnt); |
İki basit türde dizinin veya özel yapının karşılaştırılmasının sonucunu geri döndürür |
|
int array.Insert(const src_array[], const int dst_start, const int src_start, const int cnt); |
Belirtilen indeksten başlayarak, kaynak diziden belirtilen sayıda öğeyi alıcı diziye ekler |
|
int array.Remove(const int start_pos, const int count); |
Belirtilen indeksten başlayarak, belirtilen sayıda öğeyi diziden kaldırır |
|
int array.Reverse(const int start_pos, const int count); |
Belirtilen indeksten başlayarak, belirtilen sayıda öğeyi dizide tersine çevirir |
|
bool array.Swap(array& arr[]); |
İçeriği aynı türden başka bir dinamik diziyle değiştirir |
|
void array.Sort(sort_function); |
Sayısal dizileri birinci boyuta göre sıralar |
|
int array.Search(scalar value, search_function); |
Dizinin birinci boyutunda bulunan ilk öğenin indeksini geri döndürür |
|
int array.Find((scalar value, search_function); |
|
İletilen fonksiyonu kullanarak dizide arama yapar ve bulunan ilk öğenin indeksini geri döndürür |
array array.Select(scalar value, search_function); |
|
İletilen fonksiyonu kullanarak dizide arama yapar ve bulunan tüm öğeleri içeren diziyi geri döndürür |
Erişim Belirteçleri
Erişim belirteçleri derleyicinin değişkenlere, yapı veya sınıf üyelerine nasıl erişebileceğini tanımlar.
const belirteci bir değişkeni sabit olarak bildirir ve çalışma zamanı boyunca değişmesine izin vermez. Bildirildiği zaman değişkenin sadece bir sefer başlatılmasına izin verir.
Örnek:
int OnCalculate (const int rates_total, // price[] dizisinin büyüklüğü
|
Yapı ve sınıf üyelerine erişim için şu erişim belirteçlerini kullanabilirsiniz:
- public – değişkene veya sınıf yöntemine sınırsız erişim sağlar
- protected – bu sınıfın yöntemlerinden ve genele açık olarak kalıtımlanmış sınıfların yöntemlerinden yapılan erişime izin verir. Başka türlü erişim imkansızdır;
- private – sınıf değişkenlerine ve yöntemlerine dışarıdan erişimi engeller.
- virtual – sadece sınıf yöntemlerine uygulanır (yapı yöntemlerine değil) ve derleyiciye bu yöntemin, sınıfın sanal fonksiyonlar tablosunda yer alması gerektiğini anlatır.
Bellek Sınıfları
Üç adet bellek sınıfı bulunmaktadır: static, input ve extern. Bu şekillendiriciler, karşılık gelen değişkenlerin global havuz denilen, önceden tahsis edilmiş bellek alanında dağıtıldığını derleyiciye açık olarak gösterirler. Ayrıca, değişken verilerinin özel işleniş şekillerini de belirtirler. Yerel düzeyde bildirilmiş bir değişken statik değilse, gereken bellek program yığınında otomatik olarak tahsis edilir. Statik olmayan bir dizi için ayrılmış bellek, dizinin bildirildiği bloğun görünürlük alanı dışına çıkıldığında otomatik olarak serbest bırakılır.
Ayrıca Bakınız
Veri Tipleri, Tiplerin Kapsüllenmesi ve Genişletilebilirliği, Değişkenlerin Başlatılması, Değişkenlerin Görünürlük Alanları ve Ömürleri, Nesnelerin Oluşturulması ve Silinmesi, Bir Sınıfın Statik Elemanları