title: base-derived class relationship
body: <p>I have this doubt on base-derived class relationship. </p>
  
  <p>i know when we derive an class from the base class, the derived class would have all the information about the base class. but the base class wouldnt know anything about the derived class.</p>
  
  <p>so, why is this acceptable?</p>
  
  <pre><code>Base *b=new Derived();
  </code></pre>
  
  <p>and not</p>
  
  <pre><code>Derived *d=new Base();.
  </code></pre>
  
  <p>and basically i need to understand the need of the first statement? i mean, what is the use of assigning the derived class object to the base class pointer?</p>
  
  <p>Note : This is not an assignment. im in the early stage  of learning programming. so basically need to understands the bits and pieces. Please ignore if this is very basic and already asked question.</p>