Exactly what does it mean when "virtual" is within "class Foo : public virtual Bar" instead of "virtual void frob()"?
For any given method you will find 8 cases stemming in the presence or lack of virtual within the following three locations.
- A superclass's functions.
- The inheritance chain with this class.
- This classes functions.
I believe I realize how amounts 1 and three interact but number two appears redundant. Could it be? What am I lacking the knowledge of?