Справочник по C/C++
Оператор typeid

В языке C++ оператор typeid возвращает ссылку на объект type_info, описывающий тип объекта, к которому принадлежит оператор typeid. общая форма записи оператора typeid такова.

typeid(объект)

Оператор typeid поддерживает в языке C++ возможность индефикации динамической информации о типе (RTTI).

Класс type_info определяет следующие открытые члены.

bool operator == (const type_info &ob) const;
bool operator != (const type_info &ob) const;
bool before (const type_info &ob) const;
const char *name() const;

Перегруженные операторы == и != служат для сравнения типов. Функция before() возвращает значение true, если возвращающий объект в порядке сопоставления стоит перед объектом, используемым в качестве параметра. Эта функция предназначена в основном для внутреннего использования. Её значение возврата не имеет нечего общего с наследованием или иерархией классов. Функция name() возвращает указатель на имя типа.

Если оператор typeid применяеться к указателю полиморфного класса, он автоматически возвращает тип объекта, на который он указывает. (полиморфный класс — это класс который содержить хотябы одну виртуальную функцию.) Следовательно, оператор typeid можно использовать для определения типа объекта, адресуемого указателем на базовый класс.

В языке C оператор typeid не поддерживаеться.



Реклама