C++ Örnekli Yapı
Yapı Nedir? C++?
A YAPI bir C++ Farklı veri türlerindeki öğeleri bir arada depolamak için kullanılabilen veri yapısı. İçinde C++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 gruplandırmak için bir veri türü oluşturur.
Örneğin:
Birisi, adı, vatandaşlığı ve yaşı hakkında bilgi 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şiye ait bilgileri saklamanız gerekebilir. Bu, farklı bireylere yönelik değişkenlerin oluşturulacağı anlamına gelir. Örneğin isim1, vatandaşlık1, yaş1 vb. Bunu önlemek için bir yapı oluşturmak daha iyidir.
Bir Yapı ne zaman kullanılır?
İşte yapıyı kullanmanın bazı nedenleri C++.
- Farklı veri türlerindeki öğeleri tek bir veri türü altında depolamanız gerektiğinde bir yapı kullanın.
- C++ yapılar referans türü olmaktan ziyade bir değer türüdür. Verilerinizi oluşturduktan sonra değiştirmeyi düşünmüyorsanız bir yapı kullanın.
C++ Yapı Başlatma
Bir oluşturmak için C++ Yapıyı oluşturmak için struct anahtar kelimesini ve ardından bir tanımlayıcıyı kullanırız. Tanımlayıcı yapının adı olur. İşte bir oluşturma sözdizimi C++ yapı:
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 küme parantezleri 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 Person üç üyeli bir yapıdır. Üyelerin adı, vatandaşlığı ve yaşı bulunur. Bir üye char veri tipindedir, geri kalan 2 üye ise tam sayıdır, yapı oluşturulduğunda hafıza tahsis edilmez. Bellek ancak yapıya bir değişken eklendikten sonra tahsis edilir.
Yapı Örnekleri Oluşturma
Yukarıdaki örnekte Person adında bir yapı oluşturduk. Aşağıdaki gibi bir yapı değişkeni oluşturabiliriz:
Person p;
p, Person türünde bir yapı değişkenidir. Bu değişkeni yapının üyelerine erişmek için kullanabiliriz.
Yapı Üyelerine Erişim
Yapı üyelerine erişmek için yapının örneğini ve nokta (.) operatörünü kullanırız. Örneğin, Person yapısının üye yaşına erişmek için:
p.age = 27;
Yapının örneğini kullanarak, struct Person'ın üye yaşına ulaştık, s. Daha sonra üye yaşı değerini 27 olarak ayarladık.
Örnek 1:
#include <iostream> 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 ekran görüntüsü:
Kod Açıklaması:
- İçinde tanımlanan fonksiyonları kullanmak için iostream başlık dosyasını programımıza dahil edin.
- Sınıflarını çağırmadan kullanmak için std ad alanını ekleyin.
- Kişi adında bir yapı oluşturun.
- Yapı gövdesinin başlangıcı.
- Tamsayı türünde vatandaşlık adlı bir yapı üyesi oluşturun.
- Tamsayı türünde yaş adında bir yapı üyesi oluşturun.
- Yapı gövdesinin sonu.
- main() fonksiyonunu çağırın. Program mantığı bu fonksiyonun gövdesine eklenmelidir.
- Person yapısının bir örneğini oluşturun ve ona p adını verin.
- Yapı üyesi vatandaşlığının değerini 1 olarak ayarlayın.
- Yapı üyesi yaşının değerini 27 olarak ayarlayın.
- Yapı üyesi vatandaşlığının değerini başka bir metnin yanında konsola yazdırın.
- Yapı üyesi yaşının değerini başka bir metnin yanında konsola yazdırın.
- Program başarılı bir şekilde çalışırsa bir değer döndürmelidir.
- Main() fonksiyonunun sonu.
Yapıya Yönelik İşaretçiler
Bir yapıya işaret eden bir işaretçi oluşturmak mümkündür. Bu, int, float, double, vb. gibi yerel veri türlerine işaret eden işaretçilerin nasıl oluşturulduğuna benzerdir. Bir işaretçinin C++ bir hafıza konumu saklayacak.
Örnek 2:
#include <iostream> 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 ekran görüntüsü:
Kod Açıklaması:
- Fonksiyonlarını kullanabilmek için iostream başlık dosyasını programımıza ekleyiniz.
- Sınıflarını çağırmadan kullanmak için programımıza std ad alanını ekleyin.
- Uzunluk adlı bir yapı oluşturun.
- Yapının gövdesinin başlangıcı Uzunluk.
- Tamsayı veri türünün metreleri adlı bir yapı üyesi oluşturun.
- Tamsayı türünde santimetre adında bir yapı üyesi oluşturun.
- Yapının gövdesinin sonu Uzunluk.
- Main() işlevini çağırın.
- Main() işlevinin gövdesinin başlangıcı.
- Uzunluk türünde bir işaretçi değişkeni *ptr ve normal değişken l oluşturun.
- l değişkeninin adresini dosyamızda saklayın. işaretçi değişkeni.
- Konsolda kullanıcıdan değişken ölçüm değerlerinin değerini girmesini isteyen bir mesaj görüntüleyin.
- Kullanıcının klavye aracılığıyla girdiği değeri okuyun. Üye fonksiyon ölçerlere burada işaretçi değişkeni kullanılarak erişilir.
- Konsolda kullanıcıdan santimetre değişkeni için değer girmesini isteyen bir mesaj görüntüleyin.
- Kullanıcının klavye aracılığıyla girdiği değeri okuyun. Üye işlevi santimetreye burada işaretçi değişkeni kullanılarak erişilir.
- Kullanıcıdan okunan değerleri başka bir metnin yanında konsolda görüntüleyin.
- Program başarılı bir şekilde yürütüldüğünde bir değer döndürmelidir.
- Main() işlevinin gövdesinin sonu.
İşlev Argümanı Olarak Yapı
Bir yapıyı bir fonksiyona argüman olarak iletebilirsiniz. Bu, normal bir tartışmayı iletmekle aynı şekilde yapılır. Yapı değişkenleri aynı zamanda bir fonksiyona da aktarılabilir. Bunun iyi bir örneği, yapı üyelerinin değerlerini görüntülemeniz gerektiği durumdur. Bunu gösterelim:
Örnek 3:
#include<iostream> using 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<<endl; cout << " Person age: " << p.age; }
Çıktı:
İşte kodun ekran görüntüsü:
Kod Açıklaması:
- iostream başlık dosyasını dosyamıza ekleyin. Daha sonra fonksiyonlarını hata almadan kullanacağız.
- Sınıflarını kullanmak için programımıza std ad alanını ekleyin. Sınıflarını kullanmak için ad alanını çağırmamıza gerek kalmayacak.
- Kişi adında bir yapı oluşturun.
- Person yapısının gövdesinin başlangıcı.
- Person yapısının bir üyesini oluşturun. Üye vatandaşlık olarak adlandırılır ve tam sayı türündedir.
- Person yapısının bir üyesini oluşturun. Üye, age olarak adlandırılır ve tamsayı türündedir.
- Kişi yapısının gövdesinin sonu.
- Bağımsız değişken olarak struct Person (p) örneğini alan bir işlev oluşturun.
- Ana işlevi çağırın. {, main() işlevinin gövdesinin başlangıcını işaret eder.
- struct Person'ın bir örneğini oluşturun ve ona p adını verin.
- Yapının örneğini (p) kullanarak ve ona 1 değerini atayarak yapı üyesi vatandaşlık değişkenine erişin.
- Yapının örneğini kullanarak, yaş yapı üyesi değişkenine erişin ve ona 27 değerini atayın.
- Fonksiyonu çağırın ve argüman olarak Person, p yapısının örneğini ona iletin.
- İşlev başarılı bir şekilde yürütüldüğünde bir değer döndürmelidir.
- Main() işlevinin gövdesinin sonu.
- Fonksiyonun gövdesini oluşturun.
- Fonksiyonun gövdesinin başlangıcı.
- Yapı üyesi vatandaşlık değerine erişin ve bunu diğer metinlerle birlikte konsola yazdırın.
- Yapı üyesi yaş değerine erişin ve bunu diğer metinlerin yanında konsolda yazdırın.
- İşlev gövdesinin sonu.
Bir sınırlama C++ yapı
Yapıların sınırlamaları şunlardır:
- Yapı veri türü yerleşik veri türleri gibi ele alınamaz.
- Opera+ - gibi torlar ve diğerleri kullanılamaz yapı değişkenleri.
- Yapılar veri gizlemeyi desteklemez. Bir yapının üyelerine kapsamı ne olursa olsun herhangi bir fonksiyon tarafından erişilebilir.
- Statik üyeler yapı gövdesi içinde bildirilemez.
- Yapıcılar bir yapının içinde oluşturulamaz.
ÖZET
- Yapı, farklı türlere ait veri öğelerini saklayan bir veri yapısıdır.
- Bir dizi benzer türdeki veri öğelerini saklarken, yapı farklı türdeki veri öğelerini saklar.
- Veri öğelerinin değer 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şturmamız gerekiyor.
- Bir oluşturmak için C++ struct için struct anahtar sözcüğünü kullanırız.
- Bir yapıya işaret eden işaretçiler, normal türleri işaret eden işaretçilerin oluşturulmasına benzer şekilde oluşturulur.
- Bir yapı, sıradan işlevlerin iletildiği şekilde bir işleve argüman olarak iletilebilir.