I would avoid virtual inheritance until actually necessary. When you use virtual inheritance, you infiltrate some of the abstractions that you build on your class, and, in particular, how you initialize your base class by forcing the virtual database to be called to the most derived type.
source
share