Is it a good practice to define IHaveVirtualDestructor base class in my C++ application?
<p>I would like to define a class that looks like this:</p>

<pre><code>class IHaveVirtualDestructor
{
public:
    virtual ~IHaveVirtualDestructor();
};
</code></pre>

<p>And I would like all my interface and abstract classes to inherit this class. Is it a good practice? Or should every interface/abstract class define its own virtual destructor? What are the drawbacks?</p>
