одном» (динамическом) типе, а
Автор admin
Воскресенье, 14 июня 2009 11:32
одном» (динамическом) типе, а в остальных случаях — статическая информация о типе. В частности, оператор typeid может использоваться для получения динамического имени объекта в формате const char*, как показано в следующем примере: //: С08:TypeInfo.срр // Применение оператора typeid #i nclude #include using namespace std: struct PolyBase {virtual ~PolyBase(){}}: struct PolyDer : PolyBase { PolyDerO {} }: struct NonPolyBase {}: struct NonPolyDer : NonPolyBase {NonPolyDer(int){} }; int mainO { // Для полиморфных типов const PolyDer pd: const PolyBase* ppb = &pd; cout « typeid(ppb).name() « endl: cout « typeid(*ppb).name() « endl: cout « boolalpha « (typeid(*ppb) == typeid(pd)) « endl: cout « (typeid(PolyDer) == typeid(const PolyDer)) « endl; // Для неполиморфных типов const NonPolyDer npd(l); const NonPolyBase* nppb = &npd; cout « typeid(nppb).nameО « endl: cout « typeid(*nppb).name() « endl: cout « (typeid(*nppb) == typeid(npd)) « endl; // Для встроенных типов int i; cout « typeid(i).name() « endl: } ///:- Результат выполнения программы для одного конкретного компилятора выглядит та
Комментарии закрыты.
Последние комментарии