Основное преимущество
ИдиомаPIMPL позволяетотделить абстракциюотреализации.
Этодополнительнопозволяет расширятьиабстракциюиреализацию, произвольноихкомбинируя.
Расширениепроисходитнезависимои даётдвеотдельныеиерархииклассов.
Приведениетиповвиерархиях классов
Животное
Млекопитающее Птица
Приведениетиповвиерархиях классов
Мыужезнаем, что приведение типов вверх поиерархии всегда возможнои может происходить неявно.
◦Всякийкроликживотное
◦Всякийястребптица
◦Исключение- "ромбовидное"наследование
Приведение типов вниз по иерархии не всегда возможно
◦Невсякоемлекопитающеекот, нонекоторые млекопитающиемогут бытькотами
◦Такоеприведениевозможнотолько с применениемdynamic_cast
Приведениетиповвиерархиях классов
Животное
Млекопитающее Птица