title: Destructor not invoked when deleting void pointer
body: <p>I've got 3 classes</p>
  
  <pre><code>class A
  {
      A();
      virtual ~A();
  }
  class B : public A
  {
      B();
      ~B();
  }
  class C
  {
      void *obj;
      C() : obj(nullptr) {}
      ~C() { if (obj) delete obj; }
  }
  </code></pre>
  
  <p>when I use class <code>C</code> as a container for any child of class <code>A</code> and try to delete <code>C</code> instance. <code>A</code>, <code>B</code> destructor is not inveked is it normal? What is the solutuon?</p>
  
  <pre><code>C* instance = new C();
  instance.obj = new B();
  //Magic
  delete instance; // A and B destructor is not called
  </code></pre>