Базовый класс можно объявить виртуальным базовым классом, используя запись:
class Student : virtual Person{};class Librarian : virtual Person{}; Гарантировано, что объект виртуального базового класса будет содержаться в объекте выведенного класса (см. рисунок 11.4) один раз. Платой за виртуальность базового класса являются дополнительные накладные расходы при обращениях к его атрибутам и методам наследования.

Рис. 11.4. Структура объекта StudentLibrarian при виртуальном множественном наследовании.