езультате интерфейс становится

Автор admin Воскресенье, 14 июня 2009 11:32

езультате интерфейс становится менее понятным и раздражает тех, кто должен переопределять чисто виртуальные функции при наследовании от этого базового класса. Наконец, RTTI иногда помогает решить проблемы эффективности. Если программа использует полиморфизм так, как положено, но какой-нибудь объект реагирует на обобщенный код крайне неэффективно, можно идентифицировать этот тип средствами RTTI и написать специализированный код для повышения эффективности. Пример Следующий пример, демонстрирующий практическое применение RTTI, имитирует систему переработки мусора. Различные виды «мусора» попадают в общий контейнер, а затем сортируются в соответствии со своими динамическими типами. //: C08:Trash.h // Описания разных видов мусора #ifndef TRASH_H #define TRASH_H #include class Trash { 436 Глава 8 • RTTI float _weight; public: Trash(float wt) : _weight(wt) {} virtual float valueO const – 0: float weightО const { return _weight; } virtual -TrashO { std::cout « “-TrashO” « std::endl: } }: class Aluminum : public Trash { static float val: public: Aluminum(float wt) : Trash(wt) {} float valueO const


Комментарии закрыты.