【问题标题】:How is polymorphism implemented at low level in a language like c++ ? [duplicate]多态性是如何在像 c++ 这样的语言中实现的? [复制]
【发布时间】:2013-06-02 07:32:58
【问题描述】:

我在一本书中读到多态性是在 c++ 中通过三个级别的指针(使用 vtable)实现的,但是在 c++ 中是否还有其他方法来实现它。

【问题讨论】:

  • 实际上@Mat 我正在搜索具有多态性的标签,这就是为什么我无法找到您在此处提到的答案的原因。不管怎样,谢谢。

标签: c++ polymorphism


【解决方案1】:

虚拟函数也可以像这样用函数指针直接实现。

struct A
{
    void (*foo)(A *thiz);
    void (*goo)(A *thiz, int x);
};

但显然这比正常的实现效率低。实际上,在处理多重继承和虚拟基类时,C++ 实现可能会有所不同。

【讨论】:

猜你喜欢
  • 2015-01-13
  • 2018-02-06
  • 1970-01-01
  • 2020-04-01
  • 1970-01-01
  • 2018-07-29
  • 2021-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多