CodeBlanks Logo Icon CodeBlanks

İç içe namespace

İç 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:: gerekmez

Bu 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

main.cpp
#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

main.cpp
#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ı

Soru
int n = app::util____helper();
Cevap
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

Başlangıç bölümündeki tüm dersler