Namespaces allow to group entities like classes, objects and functions under a name. This way the global scope can be divided in "sub-scopes", each one with its own name.
You use keyword using to introduce a name from a namespace into the current declarative region.
For example:
without using namespace you will write:
    #include 
int main () {
  std::cout << "Hello world!\n";
  return 0;
}
However you can also write:
    #include 
    using namespace std;
int main () {
  cout << "Hello world!\n";
  return 0;
}
This allows you not to append napespace identifier before every
In C++ static class has no meaning unlike other OOP languages. You can have static data members methods.
Instead you can create:
1.A static method in class
class SomeClass
{
public:  static void myMethod(int x..)
    {
    }
}
2.Create a free function in namespace
namespace A 
{
    void myMethod(int x..)
    {
    }
}
Latter is better suited when you do not need an object. No class no object...
In both cases enclosing a class within namespace allows you to to group entities under a common name.