title: Virtual Destructors and delete keyword
body: <p>I've read a few other similar questions on the subject but I'm still confused on the use of delete for dynamically allocated memory and virtual destructors. If I have an object of class <code>Base</code> or of class <code>Derived</code> in a linked structure such that if I delete a node I also want to delete all nodes that can call this node an ancestor. Do I need to specify this in the destructor as shown below? Or will the use of a virtual destructor without the two <code>delete</code>s take care of this already?</p>
  
  <pre><code>class Base{ /*...*/ };
  
  class Derived: public Base
  {
      public:
         //various virtual functions//
         virtual ~Derived()
         {
             delete leftPtr;
             delete rightPtr;
         }
      private:
         Base* leftPtr = new Derived();
         Base* rightPtr = new Derived();
  };
  </code></pre>