Should C++ 'interfaces' have a virtual destructor
<blockquote>
  <p><strong>Possible Duplicate:</strong><br>
  <a href="http://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>
