如何在c ++这样的语言中以低级别实现多态?

时间:2013-06-02 07:32:59

标签: c++ polymorphism

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

1 个答案:

答案 0 :(得分:0)

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

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

但显然这比普通实现效率低。实际上,在处理乘法继承和虚基类时,C ++实现可能会略有不同。