title: Cast not shown correctly
body: <p>In the sample code below, why </p>
  
  <p><code>a</code> is assigned as <code>004609CC</code> instead of <code>004609C0</code>?
  I was expecting a,b, and c to point to the same address.
  And why dynamic_Cast(a) changes the address to <code>004609C0</code></p>
  
  <pre><code>class A1
  {public:
      unsigned a1;
      int a2;
      virtual ~A1() { }
  };
  
  class B1
  {public:
      unsigned b1;
      int b2;
      virtual ~B1() { }
  };
  
  class C1 : public B1, public A1
  {public:
      unsigned c1;
      virtual ~C1(){}
  };
  
  
  int main()
  {
      C1* c = new C1;
      A1* a = c;
      B1* b = c;
  
  
      std::cout &lt;&lt; static_cast&lt;void*&gt;(a) &lt;&lt; "\n"; //004609CC Why not 004609C0?
      std::cout &lt;&lt; static_cast&lt;void*&gt;(b) &lt;&lt; "\n"; //004609C0
      std::cout &lt;&lt; static_cast&lt;void*&gt;(c) &lt;&lt; "\n"; //004609C0
      std::cout &lt;&lt; dynamic_cast&lt;C1*&gt;(a) &lt;&lt; "\n"; //004609C0  
  
  
  //  delete b;
  }
  </code></pre>