gpt4 book ai didi

c++ - 在 C++ 中利用 RTTI 的实际用途

转载 作者:行者123 更新时间:2023-11-28 07:31:47 25 4
gpt4 key购买 nike

完成第一卷。 Bruce Eckel 的《Thinking in C++》一书,我已经开始阅读第 2 卷。专门介绍 RTTI(运行时类型识别)的章节最让我吃惊。我一直在阅读有关 tyepiddynamic_cast 等的内容。

但是,我有一个问题浮现在我的脑海中。他们是否通过提到的运营商利用 RTTI 的任何实际用途,即来自现实生活项目的一些例子?此外,遇到了哪些限制使其有必要使用?

最佳答案

dynamic_cast 可用于添加可选功能


void foo(ICoolStuff *cs)
{
auto ecs = dynamic_cast<IEvenCoolerStuff*>(cs);
if (ecs != 0)
{
ecs->DoEvenCoolerStuff();
}

cs->DoCoolStuff();
}

当您从头开始设计时,可能会输入 DoEvenCoolerStuff进入ICoolStuff并且在不支持它的类中有空实现,但当您需要更改现有代码时,这通常是不可行的。

另一个用途是消息系统实现,其中可以使用 dynamic_cast 来区分您感兴趣的消息。更一般地说,当遇到 the expression problem 时,您可能需要它。 .

关于c++ - 在 C++ 中利用 RTTI 的实际用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17530383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com