Глава 23. Динамическая идентификация типов_______________________66?
Как легко видеть, условное объявление позволяет совместить объявление pDerived, инициализацию и вычисление ее результата в одной строке. Такой подход позволяет избежать частых ошибок, которые возникают при использовании переменных до проверки результатов их объявления. Это также позволяет разрешить проблемы видимости и делает итоговый код короче и легче для понимания.
Условные объявления вскоре должны стать широко используемыми конструкциями языка. Они настолько удобны, что, воспользовавшись условным объявлением однажды, любой программист охотно будет применять его и в дальнейшем.
Класс fypeinfo и операция fypeid
Очевидно, что возможность определить, к какому типу относится указатель или ссылка, очень полезна. Однако иногда необходима брлее детальная информация о конкретном классе, чем та, которую можно получить с помощью операции dynamic_cast.
Стандартная реализация динамической идентификации типов C++ включает определение класса typeinfo, который можно использовать для описания различных атрибутов определенного типа. Ниже приведена структура класса
typeinfo:
class typeinfo
(
public:
// Конструкторы и деструкторы
virtual -typeinfo() ;
// Операции сравнения int operator^(const typeinfos) const;
int operator!=(const typeinfos) const;
// Различные открытые методы int before(const typeinfos) const;
const char name() const;
private:
// Копирование запретить!
typeinfo(const typeinfos);
typeinfos operator=(const typeinfos);
); '
Замечание
ДДля использования класса typeinfo и операции typeid в программу на Borland C++ 5 нужно включить заголовочный файл typeinfo. h.