Base classes should have the destructor virtual. Otherwise one can run into problems destructing the objects due to slicing problems.

Read this article: http://blogs.msdn.com/oldnewthing/ar...07/127826.aspx.