Главная->Інформатика та програмування->Содержание->Динамическая информация о типах

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ В C++ (4-Е ИЗДАНИЕ) (часть 11) онлайн

Динамическая информация о типах

Существует возможность узнавать информацию о классе объекта и даже изме-

нять этот класс прямо во время выполнения программы. Мы вкратце рассмот-

рим два механизма, которые служат для этого: операция dynamic_cast и оператор

typeid. Их можно рассматривать как дополнительные средства языка, но когда-

нибудь они могут и пригодиться.

Эти возможности используются, когда базовый класс имеет ряд порожден-

ных классов, созданных порой довольно непростым путем. Для того чтобы ис-

пользовать динамический подход, базовый класс обязан быть полиморфным,

то есть он должен содержать по крайней мере одну виртуальную функцию.

Чтобы заработали dynamic_cast и typeid, компилятор должен активизировать

механизм, который позволяет определять и изменять тип объекта во время вы-

полнения программы — RTTI (Run-Time Type Information). В системе Borland

С++ Builder этот механизм включается по умолчанию, а в Microsoft Visual C++

нужно подключать его вручную. Также необходимо включить в программу заго-

ловочный файл TYPEINFO.

 

29