Örnekle C ++ Struct

İçindekiler:

Anonim

C ++ 'da Struct nedir?

Bir STRUCT farklı veri tiplerinin elemanları birlikte depolamak için kullanılabilen bir C ++ veri yapısıdır. C ++ 'da bir yapı, kullanıcı tanımlı bir veri türüdür. Yapı, farklı veri türlerindeki öğeleri tek bir veri türü altında gruplamak için bir veri türü oluşturur.

Örneğin:

Birisi, adı, vatandaşlığı ve yaşı hakkındaki bilgileri saklamanız gerektiğini varsayalım. Verileri ayrı ayrı depolamak için ad, vatandaşlık ve yaş gibi değişkenler oluşturabilirsiniz.

Ancak, gelecekte birçok kişi hakkında bilgi depolamanız gerekebilir. Farklı bireyler için değişkenlerin yaratılacağı anlamına gelir. Örneğin ad1, vatandaşlık1, yaş1 vb. Bundan kaçınmak için bir yapı oluşturmak daha iyidir.

Bu C ++ eğitiminde şunları öğreneceksiniz:

  • C ++ 'da Struct nedir?
  • Bir Yapı ne zaman kullanılır?
  • C ++ Struct Başlatma
  • Struct Örnekleri Oluşturma
  • Struct Üyelerine Erişim
  • Yapıya Yönelik İşaretçiler
  • İşlev Bağımsız Değişkeni Olarak Yapı
  • C ++ yapısının sınırlandırılması

Bir Yapı ne zaman kullanılır?

C ++ 'da yapıyı kullanmanın bazı nedenleri.

  • Farklı veri türlerindeki öğeleri tek bir veri türü altında depolamanız gerektiğinde bir yapı kullanın.
  • C ++ yapıları, bir başvuru türü olmaktan çok bir değer türüdür. Verilerinizi oluşturduktan sonra değiştirmek istemiyorsanız bir yapı kullanın.

C ++ Struct Başlatma

Bir C ++ yapısı oluşturmak için, struct anahtar sözcüğünü ve ardından bir tanımlayıcıyı kullanırız. Tanımlayıcı yapının adı olur. C ++ yapısının oluşturulması için sözdizimi şöyledir:

Sözdizimi:

struct struct_name{// struct members}

Yukarıdaki sözdiziminde, struct anahtar sözcüğünü kullandık. Struct_name yapının adıdır.

Yapı üyeleri kaşlı ayraçlar içine eklenir. Bu üyeler muhtemelen farklı veri türlerine aittir.

Örneğin:

struct Person{char name[30];int citizenship;int age;}

Yukarıdaki örnekte Kişi, üç üyeli bir yapıdır. Üyeler isim, vatandaşlık ve yaş içerir. Bir üye char veri türündedir, kalan 2 üye tamsayıdır, bir yapı oluşturulduğunda bellek tahsis edilmez. Bellek, yalnızca yapıya bir değişken eklendikten sonra tahsis edilir.

Struct Örnekleri Oluşturma

Yukarıdaki örnekte, Person adında bir yapı oluşturduk. Aşağıdaki gibi bir struct değişkeni oluşturabiliriz:

Person p;

P, Person türünde bir yapısal değişkendir. Yapının üyelerine erişmek için bu değişkeni kullanabiliriz.

Struct Üyelerine Erişim

Yapı üyelerine erişmek için struct örneğini ve nokta (.) Operatörünü kullanıyoruz. Örneğin, yapı Kişisinin üye yaşına erişmek için:

p.age = 27;

Struct personelinin üye yaşına struct örneğini kullanarak eriştik, p. Daha sonra üye yaşının değerini 27 olarak belirledik.

Örnek 1:

#include using namespace std;struct Person{int citizenship;int age;};int main(void) {struct Person p;p.citizenship = 1;p.age = 27;cout << "Person citizenship: " << p.citizenship << endl;cout << "Person age: " << p.age << endl;return 0;}

Çıktı:

İşte kodun bir ekran görüntüsü:

Kod Açıklaması:

  1. İçinde tanımlanan işlevleri kullanmak için programımıza iostream başlık dosyasını dahil edin.
  2. Sınıflarını çağırmadan kullanmak için std ad alanını dahil edin.
  3. Kişi adında bir yapı oluşturun.
  4. Yapı gövdesinin başlangıcı.
  5. Tamsayı türünde vatandaşlık adında bir yapı üyesi oluşturun.
  6. Tamsayı türünde yaş adında bir yapı üyesi oluşturun.
  7. Yapı gövdesinin sonu.
  8. Main () işlevini çağırın. Program mantığı bu işlevin gövdesine eklenmelidir.
  9. Personelin bir örneğini oluşturun ve ona p adını verin.
  10. Yapı üyesi vatandaşlığının değerini 1 olarak ayarlayın.
  11. Yapı üyesi yaşının değerini 27 olarak ayarlayın.
  12. Başka bir metinle birlikte konsolda yapı üyesi vatandaşlığının değerini yazdırın.
  13. Başka bir metinle birlikte konsolda struct üye yaşının değerini yazdırın.
  14. Program başarılı bir şekilde çalışırsa bir değer döndürmelidir.
  15. Main () işlevinin sonu.

Yapıya Yönelik İşaretçiler

Bir yapıya işaret eden bir işaretçi oluşturmak mümkündür. İnt, float, double vb. Gibi yerel veri türlerini gösteren işaretçilerin nasıl oluşturulduğuna benzer. C ++ 'daki bir işaretçinin bir bellek konumunu saklayacağını unutmayın.

Örnek 2:

#include using namespace std;struct Length{int meters;float centimeters;};int main(){Length *ptr, l;ptr = &l;cout << "Enter meters: ";cin >> (*ptr).meters;cout << "Enter centimeters: ";cin >> (*ptr).centimeters;cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";return 0;}

Çıktı:

İşte kodun bir ekran görüntüsü:

Kod Açıklaması:

  1. İşlevlerini kullanmak için programımıza iostream başlık dosyasını dahil edin.
  2. Sınıflarını çağırmadan kullanmak için std ad alanını programımıza dahil edin.
  3. Uzunluk adlı bir yapı oluşturun.
  4. Uzunluk yapısının gövdesinin başlangıcı.
  5. Tamsayı veri türünün metre adlı bir yapı üyesi oluşturun.
  6. Tamsayı türünde santimetre adında bir yapı üyesi oluşturun.
  7. Yapının gövdesinin sonu Uzunluk.
  8. Main () işlevini çağırın.
  9. Main () işlevinin gövdesinin başlangıcı.
  10. Bir işaretçi değişkeni * ptr ve Uzunluk türünde normal değişken l oluşturun.
  11. L değişkeninin adresini işaretçi değişkenimizde saklayın.
  12. Konsolda, kullanıcıdan değişken sayaçlar için değer girmesini isteyen bir mesaj görüntüleyin.
  13. Kullanıcı tarafından klavye aracılığıyla girilen değeri okuyun. Üye işlev ölçerlerine burada işaretçi değişkeni kullanılarak erişilir.
  14. Konsolda, kullanıcıdan değişken santimetre değerini girmesini isteyen bir mesaj görüntüleyin.
  15. Kullanıcı tarafından klavye aracılığıyla girilen değeri okuyun. Üye işlevi santimetre burada işaretçi değişkeni kullanılarak erişilebilir.
  16. Başka bir metinle birlikte konsolda kullanıcıdan okunan değerleri görüntüleyin.
  17. Program başarılı bir şekilde çalıştırıldığında bir değer döndürmelidir.
  18. Main () işlevinin gövdesinin sonu.

İşlev Bağımsız Değişkeni Olarak Yapı

Bir yapıya argüman olarak bir yapı aktarabilirsiniz. Bu, normal bir argüman iletmekle aynı şekilde yapılır. Yapı değişkenleri ayrıca bir işleve aktarılabilir. Yapı üyelerinin değerlerini görüntülemeniz gerektiğine iyi bir örnek. Bunu gösterelim:

Örnek 3:

#includeusing namespace std;struct Person{int citizenship;int age;};void func(struct Person p);int main(){struct Person p;p.citizenship = 1;p.age = 27;func(p);return 0;}void func(struct Person p){cout << " Person citizenship: " << p.citizenship<

Çıktı:

İşte kodun bir ekran görüntüsü:

Kod Açıklaması:

  1. Iostream başlık dosyasını dosyamıza ekleyin. Daha sonra işlevlerini hata almadan kullanacağız.
  2. Sınıflarını kullanmak için std ad alanını programımıza dahil edin. Sınıflarını kullanmak için ad alanını çağırmamız gerekmeyecek.
  3. Kişi adında bir yapı oluşturun.
  4. Yapı Kişisinin gövdesinin başlangıcı.
  5. Struct Person üyesi oluşturun. Üye vatandaşlık olarak adlandırılır ve tam sayı türündedir.
  6. Struct Person üyesi oluşturun. Üye yaş olarak adlandırılır ve tam sayı türündedir.
  7. Struct Person gövdesinin sonu.
  8. Bağımsız değişken olarak struct Person, p örneğini alan bir işlev oluşturun.
  9. Ana işlevi çağırın. {, Main () işlevinin gövdesinin başlangıcını gösterir.
  10. Struct Person örneğini oluşturun ve ona p adını verin.
  11. Struct, p örneğini kullanarak ve ona 1 değerini atayarak struct üye değişken vatandaşlığına erişin.
  12. Yapı üyesi değişkeni age'e struct, p örneğini kullanarak ve 27 değerini atayarak erişin.
  13. İşlevi çağırın ve ona bağımsız değişken olarak struct Person, p örneğini iletin.
  14. İşlev, başarılı bir şekilde yürütüldüğünde bir değer döndürmelidir.
  15. Main () işlevinin gövdesinin sonu.
  16. İşlevin gövdesini oluşturun.
  17. İşlev gövdesinin başlangıcı.
  18. Yapı üyesi vatandaşlık değerine erişin ve diğer metinlerle birlikte konsolda yazdırın.
  19. Yapı üyesi yaş değerine erişin ve diğer metinle birlikte konsolda yazdırın.
  20. İşlev gövdesinin sonu.

C ++ yapısının sınırlandırılması

Aşağıdakiler, yapıların sınırlamalarıdır:

  • Yapı veri türü, yerleşik veri türleri gibi ele alınamaz.
  • + - ve diğerleri gibi operatörler yapı değişkenlerinde kullanılamaz.
  • Yapılar veri gizlemeyi desteklemez. Bir yapının üyelerine, kapsamına bakılmaksızın herhangi bir işlev tarafından erişilebilir.
  • Statik üyeler yapı gövdesi içinde beyan edilemez.
  • Yapıcılar bir yapının içinde oluşturulamaz.

Özet:

  • Yapı, farklı türlere ait veri öğelerini depolayan bir veri yapısıdır.
  • Bir dizi benzer türdeki veri öğelerini saklarken, yapı farklı türlerdeki veri öğelerini depolar.
  • Veri elemanlarının değeri değiştirmesi beklenmediğinde bir yapı kullanılmalıdır.
  • Bir yapının üyelerine nokta (.) Operatörü kullanılarak erişilir.
  • Yapının bir örneğini oluşturmalıyız.
  • Bir C ++ yapısı oluşturmak için struct anahtar sözcüğünü kullanırız.
  • Bir yapıya işaret eden işaretçiler, normal türlere işaret eden işaretçilerin nasıl oluşturulduğuna benzer şekilde oluşturulur.
  • Bir yapı, sıradan işlevlerin geçirildiği şekilde bir işleve argüman olarak aktarılabilir.