Actually virtual meaning is which doesnot exist in the real world. Here virtual base class means which has virtual member function but defined in derived class.
virtual classes are generally used in hybrid inheritance for exp:Their are two classes B & C derived from publically from A and in turn a class D has been derived from class B & C so to avoid the inheritance of multiple copies of certain function in A into D through B & C virtual classes are used.
If we are working with multiple inheritance it is always better to make the base class as virtual inorder to avoid the multiple copies of the base class data. :)