title: Static const double in c++
body: <p>Is this the proper way to use a static const variable?  In my top level class (Shape)</p>
  
  <pre><code>#ifndef SHAPE_H
  #define SHAPE_H
  
  class Shape
  {
  public:
  
      static const double pi;
  private:
      double originX;
      double originY;
  };
  
  const double Shape::pi = 3.14159265;
  
  #endif
  </code></pre>
  
  <p>And then later in a class that extends Shape, I use Shape::pi.  I get a linker error.  I moved the const double Shape::pi = 3.14... to the Shape.cpp file and my program then compiles.  Why does that happen?  thanks.</p>