title: Is it possible to call a private constructor from a static method defined in the cpp?
body: <p>A C++ n00b question.  Is it possible to call a private constructor from a static method defined in the cpp?   I'd like to keep methods out of the header file if possible -- I figure there should be a way to do this.  I'm getting an error when attempting this:</p>
  
  <p>"cannot access private member declared in class SomeClass"</p>
  
  <pre><code>/////////////////
  // SomeClass.h //
  /////////////////
  
  class SomeClass {
      public:
          static SomeClass SomeMethod();
      private:
          SomeClass(int i);
  }
  
  ///////////////////
  // SomeClass.cpp //
  ///////////////////
  
  static SomeClass OSImplementation() {
      return SomeClass(0);
  };
  
  // calls implementation
  SomeClass SomeClass::SomeMethod() {
      return OSImplementation();
  }
  </code></pre>