logo
inf_otvety_24-40

Виртуальное наследование

Базовый класс можно объявить виртуальным базовым классом, используя запись:

class Student : virtual Person

{

};

class Librarian : virtual Person

{

};

Гарантировано, что объект виртуального базового класса будет содержаться в объекте выведенного класса (см. рисунок 10.4) один раз. Платой за виртуальность базового класса являются дополнительные накладные расходы при обращениях к его атрибутам и методамнаследования.

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