title: Static Data Member Initialization
body: <p>Why must static data member initialization be outside the class?</p>
  
  <pre><code>class X
  {
  public:
        int normalValue = 5; //NSDMI
        static int i;
  };
  
  int X::i = 0;
  </code></pre>
  
  <p>Why is the static data member (here "i") only a declaration, not a definition?</p>