İç içe struct
- C++ kursu
- Başlangıç
- Ders 98/116
- 5 dk
Bir struct'ın içinde başka struct kullanmayı öğrenirsin.
İç içe struct
Bir struct'ın üyesi başka bir struct olabilir. Bu, ilgili verileri hiyerarşik biçimde gruplandırmanın temel yoludur.
struct Address {
string city;
string street;
};
struct Person {
string name;
Address home;
};Burada Person yapısı bir Address üyesi içerir. İç üyeye erişmek için noktaları arka arkaya kullanırsın: p.home.city. Bu, gerçek nesneleri daha doğal biçimde modellemeyi sağlar.
İç içe struct kullanma
İç içe yapıda dış yapıyı tanımladıktan sonra iç üyeleri ayrı ayrı atayabilirsin. İç yapıyı önce kendi başına tanımlayıp sonra dış yapıya atamak da mümkündür.
Person p;
p.name = "Ayşe";
p.home.city = "İstanbul";
p.home.street = "Çiçek Sokak";Burada p.home bir Address gibi davranır; üyeleri .city ve .street ile atanır. Bu düzen, adresi ayrı bir yapı olarak tutmanın okunabilirliğini korur.
Uygulama Person ve Address tanımla
struct Address { string city; string street; }; tanımla. Sonra struct Person { string name; Address home; }; tanımla. main içinde Person p; oluştur; p.name = "Ayşe";, p.home.city = "İstanbul"; ata. cout << p.name << " - " << p.home.city << endl; yazdır.
Başlangıç kodu
#include <iostream>
#include <string>
using namespace std;
// Address yapısını tanımla
// Person yapısını tanımla
int main() {
// Person p; oluştur, name ve home.city ata, yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
using namespace std;
struct Address {
string city;
string street;
};
struct Person {
string name;
Address home;
};
int main() {
Person p;
p.name = "Ayşe";
p.home.city = "İstanbul";
cout << p.name << " - " << p.home.city << endl;
return 0;
}Beklenen çıktı
Ayşe - İstanbul
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Person p; için p.home.city ifadesi ne yapar?
- bir hata verir
- yeni bir city oluşturur
- içteki city üyesine erişir Doğru cevap
- Person yapıp city yazar
Açıklama: Nokta zinciri iç üyeye eriştirir.
2 Boşluğu doldur: iç üye erişimi
Person p;
p.____.city = "İzmir";
Person p;
p.home.city = "İzmir";
Açıklama: p.home.city zinciri iç üyeye eriştirir.
3 İfadeyi sonuçuyla eşleştir
| Kavram | Anlamı |
|---|---|
p.name |
kişi adı |
p.home.city |
şehir |
p.home.street |
sokak |