Namespace (ad alanları) sınıflar, nesneler ve işlevler gibi varlıkları bir ad altında gruplamaya izin verir. Bu şekilde, global scope, her biri kendi adına sahip “alt kapsamlara” bölünebilir.
Namespace, isim çakışmalarını önlemek amacıyla kullanılır. Özellikle büyük projelerde isim bulmakta zorlanılacağı için namespace kullanılır. Erişim kolaylığı sağladığı gibi, benzer isimlerdeki varlıkların da birbirlerinden kolayca ayrıştırılmasına olanak sağlar.
Basit bir ad alanı tanımlayalım ve kapsam çözümleme operatörü ( :: ) ile içerisindeki varlığa erişelim.
#include <iostream> namespace ad_alani { int a = 10; } int main(){ std::cout << ad_alani::a; //ekrana 10 yazar. }
using
using anahtar kelimesi, kapsam çözümleme operatörünü ( :: ) kullanmamıza gerek kalmadan, ad alanı içerisinde tanımlanan varlığa doğrudan erişir.
#include <iostream> namespace ad_alani { int a = 10; } using ad_alani::a; int main(){ std::cout << a; //ekrana 10 yazar. }
using namespace std
Programdaki std bir ad alanıdır. cout deyimi bu ad alanının içerisinde yer almaktadır.
Programın başında using deyimi ile bir kez std alan adının kullanılacağı bildirilirse, her cout
deyiminden önce std yazılmasına gerek kalmayacaktır.
#include <iostream> // standart kütüphanesine // kısayol oluşturur. // her seferinde std:: // yazmanıza gerek kalmaz. using namespace std; int main() { cout << "sadece cout"; return 0; }