title: Why base class destructor (virtual) is called when a derived class object is deleted?
body: <p>A difference between a destructor (of course also the constructor) and other member functions is that, if a regular member function has a body at the derived class, only the version at Derived class gets executed. Whereas in case of destructors, both derived as well as base class versions get executed?</p>
  
  <p>It will be great to know what exactly happens in case of destructor (maybe virtual) &amp; constructor, that they are called for all its base classes  even if the most derived class object is deleted.</p>
  
  <p>Thanks in advance!</p>