к: struct PolyBase const * str

Автор admin Воскресенье, 14 июня 2009 11:32

к: struct PolyBase const * struct PolyDer true true struct NonPolyBase const * struct NonPolyBase false int Оператор typeid 431 Первая строка просто воспроизводит статический тип ppb. Чтобы механизм RTTI вступил в силу, следует разыменовать указатель, как это сделано во второй строке. Обратите внимание: RTTI игнорирует квалификаторы const и volatile верхнего уровня. Для неполиморфных типов возвращается статический тип (то есть тип самого указателя). Как видите, RTTI также работает с встроенными типами. Оказывается, результат выполнения оператора typeid невозможно сохранить в объекте type_info, так как конструкторы для него недоступны, а присваивание запрещено. Информация должна использоваться так, как показано в примере. Кроме того, конкретный вид строки, возвращаемой функцией type_info::name(), зависит от компилятора. Например, для класса с именем С некоторые компиляторы возвращают строку class С вместо С. Применение оператора typeid к выражению, разыменовывающему нулевой указатель, приводит к запуску исключения bad_typeid (также определяемому в ). Следующий пример показывает, что для вложен


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