4

ポリモーフィズムは 3 つのレベルのポインター (vtable を使用) によって c++ で実装されていることを本で読みましたが、 c++ でそれを実装する他の方法があります。

4

1 に答える 1

0

仮想関数は、このように関数ポインターを使用して直接実装することもできます。

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

しかし明らかに、これは通常の実装よりも効率的ではありません。実際、多重継承と仮想基底クラスを扱う場合、C++ の実装は少し異なる場合があります。

于 2013-06-02T07:48:06.843 に答える