27 Aralık 2016 Salı

C++ Namespace(İsim uzayları ) ve Nested Namespace

Aynı isme sahip fonksiyonlar ,sınıflar,degiskenler bulunabilir bunları ayırt edebilmek icin "namespace" leri kullanırız  bahsedilen foknsiyon ,degisken yada sınıfı bulundugu names
kullanılır

#include       
using namespace std;

namespace first_space {        /* İlk isim uzayını tanımladık icindede foknsiyonu tanımladık*/
void func(){
    printf("Hello World!\n");
}
}
namespace second_space {     /* İkinci isim uzayını tanımladık icindede foknsiyonu tanımladık*/
void func(){
    printf("Happy New Years!\n");
}
}
int main()
{
   printf("İlk isim uzayından func foknsiyonu calıstırılıyor....!\n");
   first_space::func();
   printf("İlk isim uzayından func foknsiyonu calıstırılıyor....!\n");
   second_space::func();

}



Şayet sadece ilk isim uzayını kullanacaksak bunu belirtiriz  ve 
main kısmında hangi isim uzayı oldugunu belirtmeden func() foknsiyonunu cagırabiliriz


using namespace first_space;
int main () {
 
   // This calls function from first name space.
   func();
   
   return 0;
}

İsim uzayının içinde başka bir isim uzayı (Nested Namespace)olabilir
 bunu ard arda yazarak cagırabiliriz
#include 
using namespace std;

// first name space
namespace first_space{
   void func(){
      cout << "Inside first_space" << endl;
   }
 
   // second name space
   namespace second_space{
      void func(){
         cout << "Inside second_space" << endl;
      }
   }
}

using namespace first_space::second_space;
int main () {
 
   // This calls function from second name space.
   func();
   
   return 0;
}
 
Share: