Is it a good practice to define IHaveVirtualDestructor base class in my C++ application?
===

I would like to define a class that looks like this:

    class IHaveVirtualDestructor
    {
    public:
        virtual ~IHaveVirtualDestructor();
    };

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?