gpt4 book ai didi

c++ - O'Reilly 的 "Objective-C Pocket Reference"声称 C++ 不支持动态调度,这是真的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:51 24 4
gpt4 key购买 nike

在第 4 页上,它说:

Objective-C decides dynamically--at run-time--what code will handle a message by searching the receiver's class and parent classes. (The Objective-C runtime caches the search results for better performance.) By contrast, a C++ compiler constructs a dispatch table statically -- at compile time.

我在 StackOverflow 和 Wikipedia 上阅读了很多内容,足以说明我对 C++ 是否支持 Dynamic Dispatch(有人说是 Dynamic Binding 的实现)感到非常困惑。

谁能弄清楚动态调度、动态绑定(bind)之间的区别,以及 C++ 是否支持其中一个或两个?我不是 C++ 或 Objective-C 专家,我来自 Java、Python 和 PHP 世界。

最佳答案

本书中提到的动态调度可能是 C++ 上下文中通常提到的一种不同的动态调度:

  • C++ 支持虚函数形式的动态分配。相应的名称和参数在编译时确实是已知的,尽管实际调用的函数取决于对象的动态类型。
  • 我不是 Objective C 专家,但我的理解是您可以在运行时动态地向单个对象添加函数,这些函数在调用时会被查找。 C++ 不支持这种动态调度。

关于c++ - O'Reilly 的 "Objective-C Pocket Reference"声称 C++ 不支持动态调度,这是真的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705083/

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