1.6 Namespace

C++ dilinde namespace (ad alanı) anahtar kelimesi, kodunuzu mantıksal gruplara ayırmak ve isim çakışmalarını önlemek için kullanılır. Özellikle büyük projelerde, farklı kütüphaneler veya modüller tarafından tanımlanan aynı isimlerin (örneğin, sınıf, fonksiyon veya değişken isimleri) çakışmaması için namespace kullanımı önemlidir.

Bir namespace tanımlamak için aşağıdaki sözdizimini kullanabilirsiniz:

namespace ad_alanı_adı {
    // Burada tanımlanan her şey bu ad alanına ait olur.
    int x = 10;

    void yazdir() {
        std::cout << "x: " << x << std::endl;
    }
}

Bu örnekte ad_alanı_adı adında bir namespace tanımladık ve içine bir değişken (x) ve bir fonksiyon (yazdir()) koyduk.

Tanımlanan bir namespace içindeki elemanlara erişmek için namespace adını kullanmanız gerekir:

#include <iostream>

namespace ornek {
    int x = 100;

    void yazdir() {
        std::cout << "Namespace içindeki x: " << x << std::endl;
    }
}

int main() {
    ornek::yazdir();  // Namespace içindeki fonksiyona erişim
    std::cout << "Namespace içindeki x: " << ornek::x << std::endl; // Namespace içindeki değişkene erişim

    return 0;
}

using Anahtar Kelimesi

Bir namespace içindeki elemanları kullanırken her seferinde namespace adını yazmak zorunda kalmamak için usinganahtar kelimesini kullanabilirsiniz:

Bu örnekte using namespace ornek; ifadesi, ornek ad alanındaki tüm elemanları main fonksiyonunda kullanılabilir hale getirir.

Ad Alanları ile İsim Çakışmalarını Önleme

Farklı namespace içinde aynı isimde değişken veya fonksiyonlar tanımlanabilir ve bunlar birbirinden bağımsız çalışır. Örneğin:

Çıktı:

Bu örnekte, birinciAlan ve ikinciAlan ad alanlarında aynı isimde (x) değişkenler tanımlanmış olsa da, isim çakışması oluşmaz ve her iki namespace'deki x değişkeni bağımsız olarak kullanılır.

İç İçe namespace Tanımlama

namespace içinde başka bir namespace tanımlayabilirsiniz. Bu, daha karmaşık ve detaylı isimlendirme sistemleri kurmak için kullanışlıdır:

Çıktı:

namespace Alias (Takma Ad)

namespace adlarını kısaltmak için takma adlar kullanabilirsiniz:

Çıktı:

Last updated

Was this helpful?