İç içe namespace
- C++ kursu
- Başlangıç
- Ders 109/116
- 5 dk
İç içe namespace ve kullanımını öğrenirsin.
İç içe namespace
Ad alanları iç içe olabilir; bu, büyük sistemleri alt kategorilere ayırmanın temel yoludur. İç ad alanına erişmek için kapsam zinciri yazılır.
namespace app {
namespace util {
int helper() { return 7; }
}
}Burada helper işlevi app::util ad alanındadır. Çağırmak için app::util::helper() yazarsın. C++17'den itibaren namespace app::util { ... } kısa yazımı da kullanılabilir.
İç içe using kullanımı
İç içe ad alanlarının tamamını içe aktarmak için using namespace app::util; yazabilirsin. Bu satırdan sonra helper doğrudan çağrılabilir.
using namespace app::util;
int n = helper(); // app::util:: gerekmezBu kullanım, belirli bir alt ad alanıyla çok çalışıyorsan pratiktir. Yine de büyük projelerde ad çakışması riski unutulmamalıdır; belirsiz durumda tam ad app::util::helper() tercih edilir.
Uygulama İç içe ad alanı tanımla ve çağır
namespace app { namespace util { int helper() { return 7; } } } tanımla. main içinde int n = app::util::helper(); ile çağır. cout << n << endl; ile yazdır.
Başlangıç kodu
#include <iostream>
using namespace std;
// app ve util ad alanlarını iç içe tanımla
int main() {
// içteki helper'ı tam adla çağır ve yazdır
return 0;
}Örnek çözüm
#include <iostream>
using namespace std;
namespace app {
namespace util {
int helper() { return 7; }
}
}
int main() {
int n = app::util::helper();
cout << n << endl;
return 0;
}Beklenen çıktı
7
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 namespace app { namespace util { ... } } tanımında helper nasıl çağrılır?
- app.util.helper()
- app::util::helper() Doğru cevap
- app-helper()
- util::helper()
Açıklama: İç içe ad alanlarında :: ile zincirleme yapılır.
2 Boşluğu doldur: iç içe çağrı
int n = app::util____helper();
int n = app::util::helper();
Açıklama: :: operatörü iç ad alanına eriştirir.
3 İfadeyi amacıyla eşleştir
| Kavram | Anlamı |
|---|---|
namespace app::util |
iç içe tanım |
app::util::helper |
tam çağrı |
using namespace app::util |
içe aktarır |