RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid操作符识别出所有的基本类型(int,指针等)的变量对应的类型。C++通过以下的两个操作提供RTTI:(1)typeid运算符,该运算符返回其表...
分类:
编程语言 时间:
2015-06-14 07:05:15
阅读次数:
246
什么是RTTI
RTTI(Run Time Type Identify)运行时类型检查。就是在运行时知道对象的类型。
实现RTTI的方式
(1)typeid函数
typeid(obj).name()返回对象的类型名称。
(2)dynamic_cast操作符
dynamic_cast可以知道是否可以安全地将对象的地址赋给特定类型的指针。如果转换失败,返回空指针(nullptr)。
注意:
RTTI只适用于包含虚函数的类。
RTTI实现原理就是根据对象所指向的虚函数表知道对象的类型。
在包含虚函数...
分类:
编程语言 时间:
2015-03-30 09:40:15
阅读次数:
161