title: Question about Types Conformity in C++?
body: <p>I am reading some C++ text and got the following code:</p>
  
  <pre><code>class A { };
  class B : public A { };
  
  void main() {
     A* p1 = new B; // B may be larger than A :OK [Line 1]
     B* p2 = new A; // B may be larger than A :Not OK [Line 2]
  }
  </code></pre>
  
  <p>I have 2 questions:</p>
  
  <ol>
  <li>I do not understand what the author mean by commenting in Line 1 and Line 2</li>
  <li>Why can't we do in Line 2?</li>
  </ol>