title: Force virtual destructors? C++
body: <p>I didn't see the answer to this in the C++ Faq lite:</p>
  
  <p>How do I define a base class so every class inheriting it is required to define a destructor?</p>
  
  <p>I tried running this program</p>
  
  <pre><code>struct VDtor { virtual ~VDtor()=0;  };
  struct Test:VDtor { virtual ~Test(){}  };
  int main() { delete new Test; return 0; }
  </code></pre>
  
  <p><a href="http://codepad.org/wFcE71w3" rel="nofollow noreferrer">http://codepad.org/wFcE71w3</a>
  With the error</p>
  
  <pre><code>In function `Test::~Test()':
  t.cpp:(.gnu.linkonce.t._ZN4TestD0Ev+0x1e): undefined reference to `VDtor::~VDtor()'
  In function `Test::~Test()':
  t.cpp:(.gnu.linkonce.t._ZN4TestD1Ev+0x1e): undefined reference to `VDtor::~VDtor()'
  </code></pre>
  
  <p>So, is it possible?</p>