1. Name represents a entity.
  2. In a scope we can not have same name for two entity.
  3. Using namespace we use same name for different entities.

Example

  • How to declare
namespace myspace {
    int var = 10; 
}

int main(){
   int var = 4;
   cout << var << endl;
   cout << myspace::var << endl;
}
  • We can create classes in namespace
  • We can use same namespace more than once. It is like extending the namespace
  • We can create unnamed namespace => it replaces static declaration of variables. Compilers generates the unique name for it.
  • we can access it using “using” directives e.g – using namespace myspace;
  • We can create nested namespace
  • We can provide alias – namespace new_name = myspace::inner;
namespace {
    int var_in_unnamed_ns = 10;
}
namespace myspace {
    int var = 10; 
    int value() { return 5 + var;}
    class cls_in_ns {
       public:
          void display(){
              cout << "class is in namespace" << endl;
          } 
    }
    nmespace innner {
        int in_inner = 20;
    }
}

int main(){
   int var = 4;
   cout << var << endl;
   cout << myspace::var << endl;
   cout << myspace::value() << endl;
   
   cout << var_in_unnamed_ns << endl; 
   myspace::cls_in_ns obj;
   obj.display();
   return 0;
}

Posted in C++

Leave a comment