I want to know what a \"virtual base class\" is and what it means.
Let me show an example:
class Foo { public: void DoSomething() { /* .
Virtual classes are not the same as virtual inheritance. Virtual classes you cannot instantiate, virtual inheritance is something else entirely.
Wikipedia describes it better than I can. http://en.wikipedia.org/wiki/Virtual_inheritance