读书人

标准C++怎么实现的rtti? 有虚函数的类

发布时间: 2012-03-25 20:55:16 作者: rapoo

标准C++如何实现的rtti? 有虚函数的类,其rtti信息保存在什么地方?
标准C++对于有虚表的类才能有rtti,而且typeid()也是运行时返回一个字符串。

因为虚表本身只是一个函数指向函数指针数组的指针。难道函数指针数组的某个地方包含了这个rtti的信息?(例如数组的最后面多出来一个字符串,或者指向字符串的指针)?

我想知道这个返回的字符串是如何得到的。或者说,有虚函数的类,其rtti信息保存在什么地方? 我能否通过typeid之外的方法获取?

到底是如何实现的,能否通过简单的代码加以论证?

[解决办法]
可以参考MFC RTTI

至于实现,自己写代码吧,记得关键编译的时候产生了类型链
[解决办法]
MFC中有个CObject::IsKindOf()
[解决办法]
标准木有规定呀。
[解决办法]
http://www.openrce.org/articles/full_view/23
[解决办法]
C++标准可以说从不规定实现细节。
不要多耗精力窥探编译器的私有实现细节。

读书人网 >C++

热点推荐