title: Should C++ 'interfaces' have a virtual destructor
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/2691611/destructors-for-c-interface-like-classes">Destructors for C++ Interface-like classes</a>  </p>
  </blockquote>
  
  
  
  <p>Consider a simple example of a C++ abstract class, used to model an interface:</p>
  
  <pre><code>class IAnimal
  {
    virtual void walk()=0;
    virtual ~IAnimal(){}
  };
  </code></pre>
  
  <p>Is it better to have the destructor, or not? I don't think the destructor can be pure virtual, at least my tests give linker errors, so should an empty destructor be included?</p>
  
  <p><strong>EDIT:</strong> sorry, typo. It's a destructor not a constructor.</p>