class A
{
  public:
    ~A(void) {}
};

class B : public A
{
  char *ptr;
  public:
    B(void) { ptr = new char[100]; }
    ~B(void) { delete ptr; }
};


void test(void)
{
  A *pA = new B;
  delete pA;
  // the 100 chars allocated will remain allocated
  // but there is no way to get back to them now
  // MEMORY LEAK!
}
