Just getting into these and have a few questions.

First, it looks to me like when you're creating these, you declare as pure virtual methods (with virtual ... = 0 exactly those methods that you insist be redefined in every derived class, right?

And you of course declare just as good ole public methods in the abstract class those that should apply to every derived class and hence don't need to be repeated (?).