C++ Structures (Yapılar)

Struct, farklı veri tipine sahip değişkenlerin bir grup şeklinde toplanmasıdır. Yalnış anlaşılma olmasın aynı veri tipine sahip değişkenler ile struct oluşturulabilir. Struct, en basit toplu veri tipinden bir tanesidir.

Struct yapısının şematik bildirimi aşağıdaki gibidir.
struct YapiIsmi{
  uye1_tipi uye1_ismi;
  uye2_tipi uye2_ismi;
}degisken1, degisken2, degisken3;
Yukarıdaki yapıyı anlamaya çalışmadan önce bir örneklendirme yaparak konuyu daha anlaşılır hale getirelim. 100 tane işçinin kaydını alan bir program yaptığımızı düşünelim. Her işçinin ismi, yaşı ve maaşı kayıt alınacak. Sadece C++ programlamada değişkenleri bilen birisi olsaydık yapabileceğimiz tek şey, 300 tane farklı değişken oluşturmak olacaktı. Oysa sadece bir struct oluşturup, içerisine işçilerin gerekli bilgilerini içeren üç özelliği eklememiz yeterli. Yapı kullanımının bize sağladığı kolaylık budur.

Yapı Tanımlama

Yukarıdaki örneğe dayalı olarak oluşturduğumuz yapı kod örneğinde görülmektedir.
struct Isci{
  const char *isim;
  int yas;
  int maas;
};
Kod örneğinde üç tane değişken tanımladık, bunlar yapının alanlarıdır (fields) aynı zamanda üye olarak da bilinmektedir. Bu yapıdan üretilen her değişkenin kendine ait üç tane alanı olacaktır.
Bildirilen her yapının sonunda noktalı virgül(;) işaretini kullanmayı unutmayın.
Oluşturduğumuz işci yapısından değişken üretmek için aşağıdaki yöntemleri kullanabiliriz.
struct Isci{
  const char *isim;
  int yas;
  int maas;
}ahmet, mehmet;
Yukarıda Isci yapısından ahmet ve mehmet adında iki tane değişken ürettik. Aynı şekilde standart veri tipi ile değişken oluşturur gibi Isci yapısından yapı değişkeni oluşturabiliriz.
Isci arda;
Isci baran;

Yapı Değişkeni ile Üyelere Erişim

Oluşturulan yapı değişkenleri ile yapının sahip olduğu üyelere erişmek için değişken isminin yanına nokta(.) konulup yapı üyesinin ismi yazılır ve satır bitirilir.
Isci salih;
  
salih.yas = 34;
salih.maas = 5000;

cout << "salih maas : " << salih.maas;
//ekran çıktısı : "salih maas : 5000" 

Yapı Değişkeni Başlatma

Yapıdan yapı değişken oluşturduğumuz anda bu değişkenin sahip olduğu üyelere de değer ataması yapabiliriz. Aşağıdaki örneği inceleyelim:
int main(){
            Isci mahmut = {"Mahmut Royroy", 50, 6000};
            Isci selami = {"Selami Laylaylat", 45};

            cout << "isim: " << mahmut.isim << endl;
            cout << "yas: " << mahmut.yas << endl;
            cout << "maas: " << mahmut.maas << endl;

            cout << "isim :" << selami.isim << endl; 
            cout << "yas :" << selami.yas << endl;
            cout << "maas :" << selami.maas << endl;
            return 0;
}
Ekran çıktısı:
isim: Mahmut Royroy
yas: 50
maas: 6000

isim :Selami Laylaylat
yas :45
maas :0
Gördüğünüz gibi yapı değişkenleri yukarıdaki başlatılıyor. Farkettiyseniz selami değişkeninin maas değeri eklenmediği için derleyici varsayılan olarak maas üyesine 0 değerini atadı.

Temel olarak yapılara bu yazı da değinmiş olduk.

Hiç yorum yok:

Yorum Gönderme