title: Pointer to class data member "::*"
body: <p>I came across this strange code snippet which compiles fine:</p>
  
  <pre><code>class Car
  {
      public:
      int speed;
  };
  
  int main()
  {
      int Car::*pSpeed = &amp;Car::speed;
      return 0;
  }
  </code></pre>
  
  <p><strong>Why</strong> does C++ have this pointer to a non-static data member of a class? <strong>What</strong> is the use of this strange pointer in real code?</p>