dynamic_cast. Итоги Хотя в общ

Автор admin Понедельник, 15 июня 2009 11:32

dynamic_cast. Итоги Хотя в общем случае указатели повышаются до базового класса с последующим использованием интерфейса базового класса (через виртуальные функции), иногда наличие информации о динамическом типе объекта, на который ссылается указатель на базовый класс, позволило бы повысить эффективность программы. Именно эту возможность вам предоставляет RTTI. Чаще всего ею злоупотребляют программисты, которые не понимают принципов работы виртуальных функций и применяют RTTI для ручного кодирования проверки типов. С++ предоставляет в ваше распоряжение мощный инструментарий и защиту от нарушений целостности типов, но если вы сознательно хотите неправильно или нетривиально задействовать какой-нибудь аспект языка, ничто не помешает вам в этом. Что ж, мы быстрее всего учимся на собственных ошибках. Упражнения 1. Создайте класс Base с виртуальным деструктором и производный от него класс Derived. Создайте вектор указателей на Base, которые случайным образом распределяются между объектами Base и Derived. Используя содержимое этого вектора, заполните второй вектор всеми указателями на Derived. Сравните время вы


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