Глава 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.