- 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;
}