Как происходит виртуальная отправка в приведенном ниже коде? - PullRequest
0 голосов
/ 03 октября 2018
 struct b
{
    virtual void f() {
        std::cout<<"\n Base f";
    };
};

struct d:b
{
     void f(){
        cout<<"\b Derived f";
    };
};

    //Driver code
    b *a =new d;
    void (b::*ptr)()=&b::f;
    (a->*ptr)(); 

Не могли бы вы объяснить, как работает вышеприведенный код, и вызвать функцию класса Derived.Кроме того, почему sizeof (ptr) составляет 16 байт?

...