Do we need a virtual destructor if my classes do not allocate any memory dynamically ?
e.g.
class A { private: int a; int b;
If your only concern is memory, maybe you should start by protecting base class destructor (and/or maybe others). Then if something does not compile, you'll see why. Ref: boost::any ways.