【发布时间】:2013-06-02 07:32:58
【问题描述】:
我在一本书中读到多态性是在 c++ 中通过三个级别的指针(使用 vtable)实现的,但是在 c++ 中是否还有其他方法来实现它。
【问题讨论】:
-
实际上@Mat 我正在搜索具有多态性的标签,这就是为什么我无法找到您在此处提到的答案的原因。不管怎样,谢谢。
标签: c++ polymorphism
我在一本书中读到多态性是在 c++ 中通过三个级别的指针(使用 vtable)实现的,但是在 c++ 中是否还有其他方法来实现它。
【问题讨论】:
标签: c++ polymorphism
虚拟函数也可以像这样用函数指针直接实现。
struct A
{
void (*foo)(A *thiz);
void (*goo)(A *thiz, int x);
};
但显然这比正常的实现效率低。实际上,在处理多重继承和虚拟基类时,C++ 实现可能会有所不同。
【讨论】: