"To work correctly, classes with virtual methods must also have virtual destructors."<p>Not a good way to start the article... I immediately question the author's credibility following this statement.
All of which is a workaround for the fact that there is no explicit way to declare a c++ class to be abstract-only.<p>What happens if you do have shared logic to put in the abstract base class's destructor? It can't be pure virtual, and you're back to being able to instantiate your 'abstract' base class...