ратор dynamic_cast также может

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

ратор dynamic_cast также может применяться к ссылкам вместо указателей, но так как «нулевых ссылок» не существует, информация о неудачном преобразовании должна передаваться другим способом. Этот «другой способ» основан на перехвате исключения bad_cast: //: С08:CatchBadCast.срр #i nclude #include “Security.h” using namespace std: int mainO { Metal m; SecurityS s = m: try { Investments с = dynamic_cast(s); cout « “It’s an Investment” « endl; } catch (bad_cast&) { cout « “s is not an Investment type” « endl: } try { Bond& с = dynamic_cast(s); cout « “It’s an Bond” « endl: } catch (bad_cast&) { cout « “It’s not a Bond type” « endl; } } ///:- 430 Глава 8 • RTTI Класс bad_cast определяется в заголовке . Как и большая часть стандартной библиотеки, он принадлежит к пространству имен std. Оператор typeid Другой способ получения динамической информации об объекте основан на применении оператора typeid. Этот оператор возвращает объект класса type_info с информацией о типе объекта, к которому он был применен. Для полиморфных типов возвращается информация о «наиболее произв


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