Pure virtual function vs. virtual function?
<p>I'm developing a class with some functionality that I think might need to be extended later, but not now. If the class were to be extended, then I think this would make instantiating the base class meaningless. </p>

<p>For example, let's say my base class is a tree. One approach would be to just put everything that the tree needs to do for my purposes in the tree class and leave it at that. However, this tree might be useful in other aspects of the program later on in life, so I've thought about creating a pure virtual <code>onNodeVisited</code> function.  Derived classes could then implement their own version of <code>onNodeVisited</code>, and not have to worry about the specifics of the tree traversal defined in the based class.</p>

<p>Does it make sense to not use a pure virtual function and keep the tree functionality and application-specific functionality in one class (virtual <code>onNodeVisited</code>)? Or, should I make the tree class abstract and implement one sub-class for the application-specific part.</p>
