Eng 6591 partial aggregate

It's a little strange/inconsistent that these 3 functions are public but p_execute is private.

These CAN be declared private, though I'm not sure what's best: private, protected, or public.
Since they are called exclusively through the virtual declaration on the base class, that's the only visibility that really has any effect. 
I think this is the scenario where Mike A prefers to define a trivial public inline wrapper function around a private or protected virtual function in the base class and then (I think) he makes the visibility of the child class implementations the same (private or protected) as the base class functions. Or maybe he usually uses private but only uses protected when there is a child class that needs to call up to the base class using <BaseClass>:: ?  I can't decide if I like that style or if it is "too much".

Java relieves you of some of these decisions by forcing function visibility to match up and down the class hierarchy -- I've never liked that.