"Enter"a basıp içeriğe geçin

Initialization (ilklendirme)

Bir veri için hafızadan yer ayrıldığında, bu ayrılan alan için ilk değer verme işlemine initialization (ilklendirme) denir. Böylece veri oluşturulduğu anda çöp değer almak yerine, gerçek bir değer almış olur

Değişken ilklendirme: standart tipteki değişkenler = ile ilklendirilir (char, double, float, integer vb)

int i=10;  // 10 olarak ilklendirildi.
char c=’a’; // a olarak ilklendirildi      char c=65;// A olarak ilklendirildi

Dizi ilklendirme: Dizileri   ={}  şeklinde ilklendirmemiz mümkündür

int dizi[5]={7,9,11}; // ilk 3 indise sırasıyla 7,9,11 atandı, diğerlerine 0 yada çöp değer atanır

int dizi[]={4,8,12,16,20}; // boyut bilgisi verilmez ise, ilklendirmede verilen eleman sayısı boyut olur, ve daha sonradan değiştirilemez

char kelime[]=”kelime”; //char dizisini string gibi ilklendirdik

char kelime[]={‘k’,’e’,’i’,’m’,’e’,’\0′}; //harf atadık

Üye ilklendirme söz dizimi

Bir  nesneyi oluşturma sırasında üye değişkenlere illk değerlerini  vermek amacıyla, yapıcı  metodların içinde  kullanılır. Bu yapıya Sınıflar konusunda da biraz değinmiştik

x(a), y(b) yerine x{a}, y{b} kullanımı da olabilir

Görüldüğü gibi, farklı türleri ilklendirmek için çeşitli yollar vardır.
Yeni c++ standartları ile, tüm tipleri ilklendirmek için aynı yolun kullanılması amaçlanmıştır.

Uniform ilklendirme sayesinde hemen her veriyi aynı şekilde ilklendirebiliriz.

Uniform ilklendirme (Uniform Initialization)

int i{10} // 10 olarak ilklendirdik        int {}; // 0 olarak ilklendirdik.
char c{ ‘a’ }; // a olarak ilklendirdik.
int *p{&i}; // ilklendirerek oluşturduk
int *p{}; // nullpointer ile ilklendirdik
string str{“kelime”}; // string ilklendirdik
string str2{str}; //copy constructor gibi de kullanılabilir
int* dizi = new int[5]{ 1, 2, 3, 4, 5 }; // dinamik dizi oluşturduk
vector <int> colors{1,2,3}; // vektör ilklendirdik
map<int, int> team { {2,2}, {3,9},{4,16}}; // harita oluşturduk
char s[5]{}; // hepsi \0 oldu

Üye ilklendirme sözdiziminden ile,  Bir üye diziyi de ilklendirebiliriz:

 

Konteyner ilklendirme (initializer_list) : Konteyner sınıflarda (mesela Array sınıfı) ilklendirme sırasında istediğimiz kadar eleman ilklendirebilmemiz gerekmektedir. Bu durumda ilklendirme listesi kullanır

Konteyner İlklendirme
Yollanan listeye göre hafızada yer ayrılır.

 

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir