title: Why do we need a pure virtual destructor in C++?
body: <p>I understand the need for a virtual destructor. But why do we need a <em><strong>pure</strong></em> virtual destructor? In one of the C++ articles, the author has mentioned that we use pure virtual destructor when we want to make a class abstract.</p>
  <p>But we can make a class abstract by making any of the member functions as pure virtual.</p>
  <p>So my questions are</p>
  <ol>
  <li><p>When do we really make a destructor pure virtual? Can anybody give a good real time example?</p>
  </li>
  <li><p>When we are creating abstract classes is it a good practice to make the destructor also pure virtual? If yes..then why?</p>
  </li>
  </ol>