Here's simple class definitions like
class Base{
public:
virtual void Func(){
cout<<"Func in Base"<<endl;
}
};
class Derived : public Base{
public:
virtual void Func(){
cout<<"Func in Derived"<<endl;
}
}
Base *b = new Derived();
and the statement
(b->*&Base::Func)();
calls the Derived version of Func, different from b->Base::Func() which calls the base version as expected, why this happened and what's the meaning of that call exactly?