#include "lib.h"

struct Derived_Private : public Base
{
  virtual ~Derived_Private() 
  { printf("in Derived_Private destructor\n"); }
};

Base * GetPrivate()
{
  return new Derived_Private();
}

void Destroy(Base * pb)
{
  delete pb;   // Virtual call #1
}