C++: множественное и виртуальное наследование