I am preparing a course on C++ and have stumbled on a question I have never seen addressed anywhere: Why is virtual inheritance called "virtual"? How is it related to virtual functions?
My thoughts on the matter are that, like virtual functions, virtual bases are accessible via pointers instead of existing previously in the derived object's layout. Thus, virtual inheritance does not append subobjects corresponding to subclasses one after the other, but rather locates the virtual base somewhere and puts pointers in the subclasses to enable them to locate the base - just like virtual table pointers contain pointers that enable the location of the corresponding virtual function to be invoked.
So, any thoughts on this will be greatly appreciated!!