title: static variables initialization order between many classes
body: <pre><code>c.h   
  class C{  
      static string s;  
  }
  
  c.cpp  
  string C::s=D::staticMethod();
  
  d.h  
  class D{  
  static string s;  
  static string staticMethod();  
  }
  
  d.cpp  
  string D::s("some string");  
  string D::staticMethod(){  
      return s;  (***)  
  }
  </code></pre>
  
  <p>this won't work, it stops at (<em>*</em>) because D::s has not been initialized.Is there any way to get d.cpp compiled before c.cpp?</p>