RTTI

1>dynamic_cast

Type *pp=dynamic_cast<Type*>(pt);
(pt为某个类的指针)(Type要是(*pt)的直接或间接基类 否则返回一个0即空指针)

 


2>typeid操作符和type_info类

typeid操作符返回一个type_info类

typeid(ClassName)==typeid(*pp)   (pp为某类型指针 等返回true 不等返回false)
(pp为空针 会引发bad_typeid异常 bad_typeid由exception派生 包含#include <typeinfo>中)


type_info类有个name()方法  可以调用 typeid(*pp).name();

posted @ 2007-03-11 01:43  Edward Xie  阅读(93)  评论(0)    收藏  举报