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 байт?