title: Virtual destructor: is it required in base class if base class allocated memory dynamically?
body: <p>This question looks like the discussion in <a href="https://stackoverflow.com/questions/2065938/virtual-destructor-is-it-required-when-not-dynamically-allocated-memory/12292952#12292952">Virtual destructor: is it required when not dynamically allocated memory?</a></p>
  
  <p>In an exam question, I have been asked:
  - What should any base class that maintain pointers to dynamically allocated memory define?</p>
  
  <p>I answered:
  - A copy constructor and an assignment operator (to make sure NOT only pointers are copied... c.f. deep copy), and a destructor (to free allocated memory)</p>
  
  <p>They said this is not correct because this base class should also define a virtual destructor instead of the plain destructor. Why?</p>