title: Namespace in definition and implementation
body: <p>If one has a header file, let's say <strong>"test.h"</strong> including</p>
  
  <pre><code>namespace test
  {
     enum ids
     {
        a = 1,
        b = 2,
        c = 3,
        d = 30
     };
  
     char *names[50];
  };
  </code></pre>
  
  <p>and a source file, <strong>"test.cc"</strong> basically only including</p>
  
  <pre><code>test::names[test::a] = "yum yum";
  test::names[test::c] = "pum pum";
  // ...
  </code></pre>
  
  <p>Wouldn't it make more sense to wrap the implementation inside the namespace, too?</p>
  
  <p>I'd say it would, as it's after all the implementation of the header file, so it would make sense to include the implementation in the same namespace as the header without manually prefixing every variable with <code>test::</code>, and prefix when using values from the outside.</p>
  
  <p>This is the opinion of a C++ rookie, what would the smarter people say here?</p>