社区
C++ 语言
帖子详情
请问大虾:帮我简明的解释一下RTTI,可否?
eduyu
2004-01-19 05:09:27
Run-time type information (RTTI) is a mechanism that allows the type of an object to be determined during program execution.
不懂。每个Object的类型在用的时候肯定是确定的了,难道还要在Run-time的时候determine?
...全文
40
11
打赏
收藏
请问大虾:帮我简明的解释一下RTTI,可否?
Run-time type information (RTTI) is a mechanism that allows the type of an object to be determined during program execution. 不懂。每个Object的类型在用的时候肯定是确定的了,难道还要在Run-time的时候determine?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
BluntBlade
2004-01-20
打赏
举报
回复
M$也算厉害,几个宏就把RTTI搞出来。不过看得人头晕……
靖
2004-01-20
打赏
举报
回复
我的理解是这样的:RTTI是编译器支持的,可以在程序运行过程中检测对象类型的方法。
它有以下几种用法:
dynamic_cast,用于一些类型的强制转换
typeid,用获取一些运行时的信息,主要用于程序的自我检测,可以捕获一些类似于传递错误指针一类的错误。
具体使用方法MSND参见说明吧
youngphoneix
2004-01-20
打赏
举报
回复
何不去看《C++经典问答》?
robbit2002
2004-01-19
打赏
举报
回复
typeinfo
Wolf0403
2004-01-19
打赏
举报
回复
如果 Turbo C++ 3.0 也能支持 CRuntimeClass 的话,MS 岂不是颜面扫地了?呵呵。
不过我想 MFC7 还保留 CRuntimeClass 不是处于向下兼容的考虑,而是对 C++ RTTI 的一个加强。C++ 本身的 RTTI 还是太弱了。
RTTI 并不是那么常用的一个技术——不错。很多时候可以用多态+虚函数来代替。另外,RTTI 很可能带来一些很不好的编程习惯,例如:typeof 的并列比较等等。。。C++ Primer Plus 提到过这点。
mechgoukiteng
2004-01-19
打赏
举报
回复
另外,RTTI并不是一个值得经常使用的技术-----除了一些特别的地方,比如双分派
BluntBlade
2004-01-19
打赏
举报
回复
在99年以前C++语言本身并没有涵盖RTTI机制。所以编译器厂商都会搞自己的RTTI库。
这算是历史遗留问题了。
新版的MFC中仍然保留有CRuntimeClass吧,为了保证向下兼容的。
其实按M$的说法,VC++的最新版编译器应该可以实现RTTI机制而不依赖于特定类库了。
zhjie374
2004-01-19
打赏
举报
回复
我代替他问个问题,CRuntimeClass是MFC的类,但是面向对象的C++语言,与编译器无关吧!?
那么在TC3中是否也有一个想CRuntimeClass的东西在作用!!
BluntBlade
2004-01-19
打赏
举报
回复
RTTI可以让程序在运行时期获得与类相关的信息。
使得程序可以进行类识别(用于动态生成)、安全的动态转型等。
Wolf0403
2004-01-19
打赏
举报
回复
struct Base
{ virtual ~Base(){} }
struct Derived
: public Base
{
void Derived_Func() const {}
virtual ~Derived(){}
}
void Function(const Base * _p)
{
// 这里如何知道 _p 是指向一个 Base 还是一个 Derived?用 RTTI -- dynamic_cast
if (NULL != (const Derived * _pD = dynamic_cast<const Derived *>(_p))
_pD->Derived_Func(); // 是指向一个 Derived 对象
else // 指向的是一个 Base 对象
;
}
robbit2002
2004-01-19
打赏
举报
回复
这里的类型指的是面向对象的概念,也就是说每一个继承这个object类型的类,都是这个object类型的子类型,所以在运行时期需要determine这个object类型到底是哪一个子类型。
Delphi的
RTTI
机制文档
**Delphi的
RTTI
机制详解**
RTTI
,全称Runtime Type Information(运行时类型信息),是编程语言中的一种特性,允许程序在运行时获取对象的类型信息。在Delphi中,
RTTI
是一个强大的工具,它使得开发者能够在运行时...
RTTI
.rar_
RTTI
_
rtti
这个文本文件可能包含了关于
RTTI
的教程链接、示例代码解释或者是相关资源的下载地址,
帮
助学习者更全面地理解
RTTI
。 6. **
RTTI
源代码分析** 压缩包中的
RTTI
源代码可能是为了演示如何在实际程序中使用
RTTI
功能。...
RTTI
.zip_DELPHI
RTTI
_delphi_
rtti
Delphi的运行时类型信息(Runtime Type Information,简称
RTTI
)是其强大的特性之一,它允许程序员在程序运行时获取对象或类的类型信息。在Delphi中,
RTTI
可以
帮
助我们进行动态类型检查、反射操作以及自动生成代码等...
了解魔术般的技巧:
RTTI
初学者指南.flv
了解魔术般的技巧:
RTTI
初学者指南.flv
RTTI
:
Rtti
(反思)实践
在编程领域,
RTTI
(Run-Time Type Information,运行时类型信息)是一种强大的特性,它允许程序在运行时检查和操作对象的实际类型。
RTTI
通常在面向对象的语言中使用,如C++或Pascal,用于增强代码的灵活性和动态性。...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章