2013年4月21日

摘要: 本文部分内容转载自:http://www.cppblog.com/smagle/archive/2010/05/14/115286.aspx 在揭开typeid神秘面纱之前,我们先来了解一下RTTI(Run-Time Type Identification,运行时类型识别),它使程序能够获取由基指针或引用所指向的对象的实际派生类型,即允许“用指向基类的指针或引用来操作对象”的程序能够获取到“这些指针或引用所指对象”的实际派生类型。在C++中,为了支持RTTI提供了两个操作符:dynamic_cast和typeid。 dynamic_cast允许运行时刻进行类型转换,从而使程序能够在一个类层次. 阅读全文
posted @ 2013-04-21 11:17 江在路上 阅读(255) 评论(0) 推荐(0) 编辑
 
摘要: 1、启动运行时类型识别RTTI 使用dynamic_cast就必须在编译器中启动RTTI,即“运行时期类型识别”。默认情况下编译器是不启动RTTI的。凡是程序中用到了RTTI(比如typeid)都要在编译器中打开RTTI,这样才能正确编译。 VC6下启动RTTI:Project->settings->c/c++->category->c++ language,将Enable Run-Time Type Infomation(RTTI)选中,或者直接使用/GR编译选项。 阅读全文
posted @ 2013-04-21 09:18 江在路上 阅读(135) 评论(0) 推荐(0) 编辑