Quote:
Yes, it does mean that if your derived class might have its own derived classes, then it will either have to provide yet another virtual function for its derived class to hook, or you end up with what you have now: the most derived class' override of drawMore() will have to call its base class' drawMore().
I agree providing hooks is more to do with creating interfaces (as is templating); however I'd tend to think that interfacing and derivation are separate concepts in OO design. Meaning one shouldn't have to interface to derive. (or rather, how would you derive from an interface in such a model?)